Baixe o app para aproveitar ainda mais
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
Compartilhar