Solución al problema abstracto de la función virtual en programación de autoaprendizaje en C++.

Eche un vistazo a /view/161302.htm para obtener una descripción más detallada.

Esto suele tener efecto cuando se utilizan punteros.

Por ejemplo

# include & ltiostream.h & gt

Nivel A

{

Público:

void print me(){ cout & lt;& lt"Esta es la impresión Clase A. "& lt& ltendl};

};

Clase B : público A

{

Público:

void print me(){ cout & lt; & lt"Esta es impresión de Clase B. "& lt& ltendl }

};

Categoría C: pública clase B

{

Pública:

void print me ( ){ cout <<"Esta es impresión tipo C."<<endl}

};

Impresión no válida (A *a)

{

a-& gt;imprimirme();

}

void main()

{

B b

C c

b * p 1 = &b;

p2 = &c;

Imprimir (p 1);

Imprimir (p2);

}

Si se elimina la palabra clave de función virtual de la clase principal, la salida será a.

Si agregas palabras clave,

# include & ltiostream.h & gt

Nivel A

{

Público:

virtual void print me(){ cout & lt;& lt"Esta es impresión Clase A. "& lt& ltendl};

};

Clase B: pública A

{

Pública:

void print me(){ cout <<"Esta es la impresión de nivel B. "& lt& ltendl}

};

Clase C: Pública Clase B

{

Pública:

void print me(){ cout <<"Esta es impresión tipo C."<<endl}

};

Impresión nula(A *a)

{

a-& gt;imprimirme();

}

void main()

{

B b

C c

b * p 1 = &b;

p2 = &c;

Imprimir (p 1 );

Imprimir (p2);

}

Luego generar byc.