Funciones amigas
Una función amiga es una función no miembro de una clase que puede tener acceso a las partes privadas de una clase; se debe declarar como amiga de la clase mediante la palabra reservada friend.
Las funciones amigas se declaran situando su prototipo de función en la clase de la que son amiga precediéndola con la palabra reservada friend. Por ejemplo:
class cosa
{
int datos;
public:
friend void cargar (cosa& t, int x);
};
void cargar(cosa& t, int x)
{
t.datos=x;
}
Como la función cargar se declara amiga de la clase cosa puede acceder al miembro privado datos.
Las razones fundamentales para utilizar funciones amigas es que algunas funciones necesitan acceso privilegiado a más de una clase. Una segunda razón es que las funciones amigas pasan todos sus argumentos a través de la lista de argumentos y cada valor de argumento se somete a la conversión de asignación.
Clases amigas
No sólo puede ser una función, amiga de una clase, también una clase completa puede ser amiga de otra clase. En este caso todas las funciones de la clase amiga pueden acceder a las partes privadas de la otra clase.
Una clase amiga puede ser declarada antes de que pueda ser designada como amiga.
class animales;
class hombre
{
public:
friend class animales;
};
class animales
{//..
};
Cada función miembro de animales es amiga de la clase hombre. La designación de un amigo puede estar en una sección private o public de una clase.
Hay 454 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Programa con Delphi Con este curso aprenderemos a programar con delphi, un lenguaje de programación visual, con el que podrás aprender de una manera rápida e intuitiva.... [05/05/05] |
|
5.448 | ||
|
Conmutación. Líneas de acceso (primera parte) En este curso sobre líneas de acceso conmutado aprenderás qué es la conmutación y por qué surge. Conocerás la evolución histórica de estas tecnologías y los principales s... [31/10/08] |
|
732 | ||
|
HTML para principiantes HTML para principiantes, aprende a hacer tus propias páginas web. Programar en un lenguaje como es HTML puede ser fácil y sencillo. Este curso está di... [15/09/09] |
|
2.006 | ||
Publicar en
del.icio.us
digg
meneame