Post on 22-Jul-2015
Unidad 2: CLASES DERIVADAS
PROGRAMACIÓN II
Funciones Amigas
Definiciones
• Los datos miembro declarados como privados dentro de la clase, pueden ser manipulados por las funciones amigas.
• Las funciones amigas pueden declararse tanto en la sección privada como pública dentro de la clase (recomendado en la sección pública).
• Una función externa declarada como amiga de una clase es una función no miembro.
Sintaxis
class nombre_clase { private: int n; void ingresar(); public: friend void imprimir(nombre_clase &ob); }; Llamada a función void main() { nombre_clase obj; imprimir(obj); }
Funciones miembro de una clase como Amiga
Definiciones
• La definición de la clase A, tiene una función que va a ser amiga de la clase B.
• Se requiere de una declaración por adelantado (forward) de la clase B.
• La clase B recibe como parámetro el objeto de la clase A.
• Se debe declarar la función amiga con el nombre completo de la clase a la que pertenece.
Sintaxis class A; // declaración forward class B { private: int n; public: void imprimir(A &ob); //uso de clase A como parámetro }; class A { private: int n; public: friend void B::imprimir(A &ob); //declaración completa }; void B::imprimir(A &obj) { ………. }
Una clase como Amiga
Definiciones
• Una clase puede ser amiga en la totalidad de otra clase.
• Cada función miembro de la clase amiga es amiga de la otra clase.
Sintaxis class A { private: int n; public: void ingresar(); friend class B; }; class B { private: int n; public: void imprimir(A &ob); };