C++ | Funciones virtuales | Pregunta 13

#include <iostream> using namespace std;     class A { public:     virtual void fun() { cout << «A::fun() «; } };     class B: public A { public:    void fun() { cout << «B::fun() «; } };     class C: public B { public:    void fun() { cout << «C::fun() «; } };     int main() … Continue reading «C++ | Funciones virtuales | Pregunta 13»

C++ | Funciones virtuales | Pregunta 4

¿Cuál de los siguientes es cierto acerca de las funciones virtuales puras? 1) Su implementación no se proporciona en una clase donde se declaran. 2) Si una clase tiene una función virtual pura, entonces la clase se convierte en una clase abstracta y no se puede crear una instancia de esta clase. (A) 1 y … Continue reading «C++ | Funciones virtuales | Pregunta 4»

Diferencia entre función virtual y función virtual pura en C++

Función virtual en C++ Una función virtual es una función miembro que se declara dentro de una clase base y se redefine (anulada) por una clase derivada. Cuando hace referencia a un objeto de clase derivada mediante un puntero o una referencia a la clase base, puede llamar a una función virtual para ese objeto … Continue reading «Diferencia entre función virtual y función virtual pura en C++»

Comportamiento de la función virtual en la clase derivada de la clase base y la clase abstracta

En este artículo, discutiremos el comportamiento de la función virtual en la clase derivada y la clase derivada de la clase base abstracta en C++ . Considere el siguiente programa: C++ // C++ program to illustrate the concept // of Virtual Function    #include <bits/stdc++.h> using namespace std;    // Base Class class Base { … Continue reading «Comportamiento de la función virtual en la clase derivada de la clase base y la clase abstracta»

C++ | Funciones virtuales | Pregunta 12

Prediga la salida del siguiente programa C++. Suponga que no hay alineación y que el compilador realiza una implementación típica de funciones virtuales. #include <iostream> using namespace std;    class A { public:     virtual void fun(); };    class B { public:    void fun(); };    int main() {     int a = sizeof(A), b = … Continue reading «C++ | Funciones virtuales | Pregunta 12»

C++ | Funciones virtuales | Pregunta 7

#include<iostream> using namespace std;    class Base { public:     virtual void show() = 0; };    class Derived: public Base { public:     void show() { cout<<«In Derived \n»; } };    int main(void) {     Derived d;     Base &br = d;     br.show();     return 0; } (A) Error del compilador en la línea “Base &br = d;” … Continue reading «C++ | Funciones virtuales | Pregunta 7»

C++ | Funciones virtuales | Pregunta 14

¿Puede un constructor ser virtual? ¿Compilará el siguiente programa? #include <iostream> using namespace std; class Base { public:   virtual Base() {}    }; int main() {    return 0; } (A) Sí (B) No Respuesta: (B) Explicación: No hay nada como Virtual Constructor. Hacer que los constructores sean virtuales no tiene sentido, ya que el constructor es … Continue reading «C++ | Funciones virtuales | Pregunta 14»

C++ | Funciones virtuales | Pregunta 10

#include<iostream> using namespace std; class Base  { public:     Base()    { cout<<«Constructor: Base»<<endl; }     virtual ~Base()   { cout<<«Destructor : Base»<<endl; } }; class Derived: public Base { public:     Derived()   { cout<<«Constructor: Derived»<<endl; }     ~Derived()  { cout<<«Destructor : Derived»<<endl; } }; int main()  {     Base *Var = new Derived();     delete Var;     return 0; } (A) Constructor: Base … Continue reading «C++ | Funciones virtuales | Pregunta 10»

C++ | Funciones virtuales | Pregunta 5

#include<iostream> using namespace std;    class Base { public:     virtual void show() = 0; };    int main(void) {     Base b;     Base *bp;     return 0; } (A) Hay errores del compilador en las líneas «Base b»; y “pb base”; (B) Hay un error de compilación en la línea «Base b»; (C) Hay un error de … Continue reading «C++ | Funciones virtuales | Pregunta 5»

C++ | Funciones virtuales | Pregunta 9

¿Puede un destructor ser virtual? ¿Compilará el siguiente programa? #include <iostream> using namespace std; class Base { public:   virtual ~Base() {}    }; int main() {    return 0; } (A) Sí (B) No Respuesta: (A) Explicación: Un destructor puede ser virtual. Es posible que deseemos llamar al destructor apropiado cuando un puntero de clase base apunte … Continue reading «C++ | Funciones virtuales | Pregunta 9»