Visual C++ .NET - URGENTE!!!

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Funciones amigas y funciones virtuales en Borland C++ Builder

Publicado por Alejandro (265 intervenciones) el 01/02/2024 20:08:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <iostream>
#include <string>
 
using namespace std;
 
class Base;
 
// Declaración anticipada de la clase Amiga
class Amiga;
 
// Definición de la clase Base
class Base {
private:
    int datoPrivado;
 
public:
    Base(int dato) : datoPrivado(dato) {}
 
    // Declaración de función amiga para permitir acceso a datos privados
    friend void mostrarDatoPrivado(const Base&);
 
    // Declaración de clase amiga
    friend class Amiga;
 
    // Declaración de función virtual
    virtual void imprimir() const {
        cout << "Imprimir desde la clase Base." << endl;
    }
};
 
// Definición de la clase Amiga
class Amiga {
public:
    void mostrarDatoAmigo(const Base& objetoBase) {
        cout << "Dato privado desde la clase Amiga: " << objetoBase.datoPrivado << endl;
    }
};
 
// Definición de la función amiga
void mostrarDatoPrivado(const Base& objetoBase) {
    cout << "Dato privado desde la función amiga: " << objetoBase.datoPrivado << endl;
}
 
// Definición de la clase derivada
class Derivada : public Base {
public:
    Derivada(int dato) : Base(dato) {}
 
    // Implementación de la función virtual
    void 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 main
    mostrarDatoPrivado(baseObjeto);
 
    // Acceso a clase amiga desde main
    amigaObjeto.mostrarDatoAmigo(baseObjeto);
 
    // Llamada a función virtual desde la clase base
    baseObjeto.imprimir();
 
    // Llamada a función virtual desde la clase derivada
    derivadaObjeto.imprimir();
 
    return 0;
}

Este código en C++ Builder demuestra el uso de funciones amigas y funciones virtuales. La función amiga `mostrarDatoPrivado` y la clase `Amiga` tienen acceso a datos privados de la clase `Base`. Además, la función virtual `imprimir` se sobrescribe en la clase derivada `Derivada`. Ten en cuenta que el concepto de funciones virtuales se utiliza principalmente en el contexto de la programación orientada a objetos y polimorfismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar