Ir ao conteúdo
  • Cadastre-se
diogo.feec

Uso de uma função não-membro dentro de uma classe

Recommended Posts

Olá, amigos. Estou com o seguinte problema e gostaria da ajuda de vocês.

Eu montei uma certa função que retorna uma string conforme um vetor numérico passado. Porém esta mesma função será usada em várias classes. Para evitar que eu fique duplicando o mesmo código dentro destas classes existe uma maneira de se fazer isso de forma a ter somente uma função?

std::string func( const vector<int> vec ) {
//processamento
return result;
}

class A
{
public:
void member() {
//processamento
std::string str = func( vec );
}
}

class B
{
public:
void member1() {
//processamento
std::string str1 = func( vec );
}
}

Sendo que a função member() e member1() executam processos totalmente distintos.

Obrigado por tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. Você pode definir a função em algum lugar fora dessas classes e logo usar o operador friend nessas classes pra que elas saibam que essa função não-membro pode acessar seu conteúdo.

Procure por "friend functions".

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce nao esta duplicando código,pelo contrario,voce chama uma função que faz o serviço para todas e nao precisa reescrever o mesmo código em todas as classes.

O que voce pode fazer é se voce ver que uma função de tal classe(que ja usa essa função que retorna a string)resolve mais uma parte do problema na implementação de uma outra função em outra classe,voce pode herdar private ou ter um ponteiro dessa classe por composição na sua classe e chamar essa função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×