Examveda

What will be the output of the following C++ code?
#include <iostream>
#include <string>
using namespace std;
 
class Mammal
{
   public:
	virtual void Define(){
		cout<<"I'm a Mammal\n";
	}
};
 
class Human: public Mammal
{
   public:
	void Define(){
		cout<<"I'm a Human\n";
	}
};
 
class Male: public Human
{
   public:
	void Define(){
		cout<<"I'm a Male\n";
	}
};
 
class Female: public Human
{
   public:
	void Define(){
		cout<<"I'm a Female\n";
	}
};
 
int main(int argc, char const *argv[])
{
	Mammal *M = new Mammal();
	Male m;
	Female f;
	*M = m;
	M->Define();
	M = &m;
	M->Define();
	return 0;
}

A. I'm a Male
I'm a Male

B. I'm a Male
I'm a Mammal

C. I'm a Mammal
I'm a Male

D. I'm a Mammal
I'm a Mammal

Answer: Option C


Join The Discussion

Related Questions on Inheritance in C plus plus