Código de Dev - C++ - Metodos virtuales, Herencia

Imágen de perfil
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Metodos virtuales, Herenciagráfica de visualizaciones


Dev - C++

Actualizado el 4 de Enero del 2021 por Rod (4 códigos) (Publicado el 19 de Diciembre del 2020)
1.724 visualizaciones desde el 19 de Diciembre del 2020
Demuestra como definir metodos virtuales, y como estos son invocados cuando un objeto es pasado como parametro.

1.0

Actualizado el 4 de Enero del 2021 (Publicado el 19 de Diciembre del 2020)gráfica de visualizaciones de la versión: 1.0
1.725 visualizaciones desde el 19 de Diciembre del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Si el link no muere, se puede ver ejecutandose aqui

Codigo similar, con una salida un poco mas verbosa puede verse aqui
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
// Ver tambien: http://bit.ly/virtualmethodscpp
 
#include<iostream>
 
using namespace std;
 
class Base {
   public: virtual void f() { cout << "Base" << endl; }
};
 
class D1 : public Base {
   void f() { cout << "D1" << endl; }
};
 
class D2 : public Base {
   void f() { cout << "D2" << endl; }
};
 
void puntero(Base *b)    { b->f(); }
void referencia(Base &b) { b.f();  }
void base(Base b)        { b.f();  }
 
void test_objetos() {
    D1 d1;
    D2 d2;
 
    puntero(&d1); puntero(&d2);     // D1 D2
    referencia(d1); referencia(d2); // D1 D2
    base(d1); base(d2);             // Base Base
}
 
void test_puntero_clase_base() {
    Base *pd1 = new D1();
    Base *pd2 = new D2();
 
    puntero(pd1); puntero(pd2);         // D1 D2
    referencia(*pd1); referencia(*pd2); // D1 D2
    base(*pd1); base(*pd2);             // Base Base
 
    delete pd1;
    delete pd2;
}
 
void test_puntero_clase() {
    D1 *pd1 = new D1();
    D2 *pd2 = new D2();
 
    puntero(pd1); puntero(pd2);         // D1 D2
    referencia(*pd1); referencia(*pd2); // D1 D2
    base(*pd1); base(*pd2);             // Base Base
 
    delete pd1;
    delete pd2;
}
 
int main()
{
    test_objetos();
    test_puntero_clase_base();
    test_puntero_clase();
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6782