URGENTE!!!
Publicado por Carlos (2 intervenciones) el 06/07/2007 18:26:09
necesito ayuda en lo q son funciones AMIGAS y funciones VIRTUALES ,(EJEMPLOS),en el borland builder C++.
Valora esta pregunta


0



#include <iostream>#include <string>using namespace std;
class Base;
// Declaración anticipada de la clase Amigaclass Amiga;
// Definición de la clase Baseclass Base {private:int datoPrivado;
public:Base(int dato) : datoPrivado(dato) {}
// Declaración de función amiga para permitir acceso a datos privadosfriend void mostrarDatoPrivado(const Base&);
// Declaración de clase amigafriend class Amiga;
// Declaración de función virtualvirtual void imprimir() const {
cout << "Imprimir desde la clase Base." << endl;
}};// Definición de la clase Amigaclass Amiga {public:void mostrarDatoAmigo(const Base& objetoBase) {
cout << "Dato privado desde la clase Amiga: " << objetoBase.datoPrivado << endl;
}};// Definición de la función amigavoid mostrarDatoPrivado(const Base& objetoBase) {
cout << "Dato privado desde la función amiga: " << objetoBase.datoPrivado << endl;
}// Definición de la clase derivadaclass Derivada : public Base {
public:Derivada(int dato) : Base(dato) {}
// Implementación de la función virtualvoid imprimir() const override {
cout << "Imprimir desde la clase Derivada." << endl;
}};int main() {
Base baseObjeto(42);
Amiga amigaObjeto;
Derivada derivadaObjeto(99);
// Acceso a función amiga desde mainmostrarDatoPrivado(baseObjeto);
// Acceso a clase amiga desde mainamigaObjeto.mostrarDatoAmigo(baseObjeto);
// Llamada a función virtual desde la clase basebaseObjeto.imprimir();
// Llamada a función virtual desde la clase derivadaderivadaObjeto.imprimir();
return 0;
}
