What will be the output of the following C++ code?
#include <iostream>
#include <string>
using namespace std;
class A
{
public:
virtual static void show(){
cout<<"class A\n";
}
};
class B: public A
{
public:
static void show(){
cout<<"class B\n";
}
};
int main(int argc, char const *argv[])
{
A *a = new A();
B b;
a = &b;
a->show();
return 0;
}
#include <iostream>
#include <string>
using namespace std;
class A
{
public:
virtual static void show(){
cout<<"class A\n";
}
};
class B: public A
{
public:
static void show(){
cout<<"class B\n";
}
};
int main(int argc, char const *argv[])
{
A *a = new A();
B b;
a = &b;
a->show();
return 0;
}A. class B
B. Error
C. Segmentation fault
D. class A
Answer: Option B
Related Questions on Inheritance in C plus plus
A. Multilevel inheritance
B. Hierarchical inheritance
C. Multiple inheritance
D. Single inheritance
A. public
B. private
C. friend
D. protected
What is the process of defining a new class based on an existing class in C++ called?
A. Inheritance
B. Composition
C. Encapsulation
D. Polymorphism

Join The Discussion