C++ | Funciones virtuales | Pregunta 11

¿Pueden las funciones estáticas ser virtuales? ¿Compilará el siguiente programa? #include<iostream>  using namespace std;       class Test {    public:       virtual static void fun()  { } }; (A) Sí (B) No Respuesta: (B) Explicación: Las funciones estáticas son específicas de clase y no se pueden llamar en objetos. Las funciones virtuales se llaman según el objeto … Continue reading «C++ | Funciones virtuales | Pregunta 11»

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»

Diferencia entre función virtual y función en línea en C++

Función virtual: la función virtual es una función miembro que se declara dentro de una clase base y se redefine mediante una clase derivada. Función en línea: la función en línea es una función normal definida por la palabra clave en línea, es una función corta que el compilador expande y sus argumentos se evalúan … Continue reading «Diferencia entre función virtual y función en línea en C++»

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++»

Polimorfismo en tiempo de ejecución en varios tipos de herencia en C++

C++ permite a los usuarios utilizar el concepto de polimorfismo en tiempo de ejecución utilizando funciones virtuales para cualquier tipo de herencia . A continuación se muestra cómo implementar el polimorfismo en tiempo de ejecución en todos los tipos de herencia: Herencia Única: // C++ program to demonstrate Run Time // Polymorphism in Single Inheritance … Continue reading «Polimorfismo en tiempo de ejecución en varios tipos de herencia en C++»

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»