Buscar

Conceito de funções friends em c++

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Anotações sobre c++ Sergio Souza Novak 
 
funções friends 
 
funções friends: Imagine que ao programar você se depare com esse problema, você quer que 
uma função use um dado private ou protected de um objeto, exemplo: 
 
Resultado da Compilação: 
 
A variável anos do objeto está inacessível, pois foi declarada como private. Alguém poderia 
dizer que o uso da programação orientada a objeto não é adequada para o que se busca neste 
caso. E REALMENTE NÃO É!! Para apenas essa função realmente não é. O programa 
estruturado seria a solução. 
Porém, ao se elaborar um projeto orientado a objeto em C++, as vezes precisamos usar-se de 
recursos da programação estruturada, para não mudar o projeto todo. A solução é o uso das 
funções friend: 
 
Resultado da Compilação: 
 
Dessa vez, a compilação é bem sucedida. isso se deve ao fato da declaração da função na 
classe como friend. Para entender melhor: 
 
figura 1 : sem friend 
 
 
 
 
Basta declarar a função como friend que ela passa a ter domínio sobre os dados protegidos e 
privados da classe. Sê é útil à exceções da programação orientada a objeto em C++. 
Sintaxe: 
 
class <nome_da_classe> 
{ 
//Atributos 
//Metodos 
friend <nome_de_função> (parametro1,...,parâmetro n); 
} 
<nome_de_função> (parametro1,...,parâmetro n); 
 { //Corpo da função 
 } 
Tanto faz a função/protótipo dela for declarada no acesso public ou private, basta estar 
declarada como friend na classe. Conserva as características de herança de outros atributos. 
Considerações: 
 Apesar de bem útil, não é muito recomendada, pois, torna o código prolixo, ou seja, “difícil” 
de entender. Esse tipo de prática vai contra o a programação orientada a objeto. 
 
figura 2 : COM friend

Outros materiais