Clases Amigas C++

Páginas: 2 (321 palabras) Publicado: 24 de noviembre de 2013
CLASES AMIGAS



Una clase amiga tiene acceso a los datos miembros de la clase que la declara como amiga.

Una clase amiga, debe estar declarada antes de ser designada como amiga.

Estoespecialmente es útil para la sobrecarga de operadores.


CARACTERÍSTICAS DE LAS RELACIONES DE AMISTAD

LA AMISTAD NO PUEDE TRANSFERIRSE:
Si la clase A es amiga de la clase B, y la clase B esamigo de la clase C ->
La clase A no tiene que ser amigo de la clase C (y viceversa)
“Los amigos de mis amigos son mis amigos” NO APLICA.
● LA AMISTAD NO PUEDE HEREDARSE:
Si la clase A es amigode la clase B, y la clase C deriva de la clase B ->
La clase A no tiene que ser amigo de la clase C (y viceversa)
“Los hijos de mis amigos son mis amigos” NO APLICA.
LA AMISTAD NO ES SIMÉTRICA:Si la clase A es amigo de la clase B -> La clase B no tiene por qué se amigo de la clase A




DECLARACIÓN
La declaración de la clase se hace de la siguiente manera
friend classNombreClase;
#libreias
class B;
class A
{
private:
int x;
public:
void Muestra();
friend class B;
};
class B;

Con esta declaración podemos acceder de la clase B a los miembros privados dela clase A

Acceder a una función de la clase amiga
class B;
class A
{
private:
int x;
public:
void Muestra();
friend class B;
};

class B
{
private:
int y;
public:
voidAcceder(Nombre de la Clase amiga Variable);
};


Ejemplo:

#include
#include
#include

#define MaxNom 20
#define MaxNomCu 5
#define MaxDi 100
class Cuenta2;
class Cuenta1
{private:
char Cliente[MaxNom];
float Dinero;
public:
Cuenta1();
void Registrar();
void Mostrar();
friend class Cuenta2;
};
class Cuenta2
{
private:char Cliente[MaxNom];
float Dinero;
public:
Cuenta2();
void Registrar();
void Mostrar();
void Operacion(Cuenta1 Cu);
};

Cuenta1::Cuenta1()
{...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Clase Amigo
  • C con clases
  • CLASES EN C
  • Clases en C#
  • Clases en c++
  • clase c
  • Clases en c#
  • clases c++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS