Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Apuntes / C++ - Funciones Amigas

C++ - Funciones Amigas

 ***** (2 opiniones)
CopyLeft Apuntes de Maria Denys Vela Mejia - 09 de Mayo de 2006
Temas Relacionados: CGIVisual Studio
7. Funciones Amigas
Una funcion amiga no es un miembro de una clase, pero
todavia tiene acceso a sus elementos privados. Una funcion amiga se define como
una funcion no miembro normal. Sin embargo, dentro de la declaracion de clase
para la que sera una funcion amiga, esta tambien incluido su prototipo,
precedido por la palabra clave friend.




Ejemplo 1:

class myclass {
int n, d;
public:
myclass (int i, int j) { n = i; d= j; }
friend int isfactor (myclass ob);
};

int is factor (myclass ob)
{
return !(ob.n%ob.d);
}

main()
{
myclass ob1(10,2);
if (isfactor(ob1)) cout << "2 es factor de 10\n";
}


Ejemplo 2:

class vehicle {
public:
int speed;
};

class truck; declaracion forward de la clase

class car: private vehicle {
int passengers;
public:
car (int p, int s) { passengers=p; speed=s; }
friend int sp_greater (car c, truck t);
};

class truck: private vehicle {
int weight;
public:
truck (int w, int s) { weight = w; speed=s; }
friend int sp_greater (car c, truck t);
};

int sp_greater (car c, truck t)
{
return c.speed-t.speed;
};

main()
{
car c(6, 55);
truck t(10000, 55);
int sp=sp_greater (c, t);
if (t<0) cout << "El camion es mas rapido.";
else if (!t) cout << "La velocidad del carro y el camion es la misma";
else cout << "El carro es mas rapido";
cout << "\n";
}


Ejemplo 3:

class vehicle {
public:
int speed;
};

class truck;

class car: private vehicle {
int passengers;
public:
car (int p, int s) { passengers=p; speed=s; }
int sp_greater (truck t);
};

class truck: private vehicle {
int weight;
public:
truck (int w, int s) { weight = w; speed=s; }
friend int car::sp_greater (truck t);
};

int car::sp_greater (truck t)
{
return speed-t.speed;
};

main()
{
car c(6, 55);
truck t(10000, 55);
int sp=c.sp_greater (t);
if (t<0) cout << "El camion es mas rapido.";
else if (!t) cout << "La velocidad del carro y el camion es la misma";
else cout << "El carro es mas rapido";
cout << "\n";
}
Autor y licencia de 'C++ - Funciones Amigas'

Wikis relacionados con 'C++ - Funciones Amigas'

Hoy parece evidente que las funciones-poderes del Estado están llamadas a una colaboración y a... Más »
Este es el diario de Peter Class sobre sus dias aprendizaje de una disciplina de... Más »
Herramientas para programar en C/C++ El lenguaje de los scripts tienen sus problemas: para comenzar, un... Más »
C++
Se encuentran apuntes
En algunos lenguajes tenemos la opción de utilizar punteros a funciones o soluciones similares, que... Más »
¿Estás seguro de que deseas eliminar este capítulo?