What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class BaseClass
{
public:
virtual void myFunction()
{
cout << "1";
}
};
class DerivedClass1 : public BaseClass
{
public:
void myFunction()
{
cout << "2";
}
};
class DerivedClass2 : public DerivedClass1
{
public:
void myFunction()
{
cout << "3";
}
};
int main()
{
BaseClass *p;
BaseClass ob;
DerivedClass1 derivedObject1;
DerivedClass2 derivedObject2;
p = &ob;
p -> myFunction();
p = &derivedObject1;
p -> myFunction();
p = &derivedObject2;
p -> myFunction();
return 0;
}
#include <iostream>
using namespace std;
class BaseClass
{
public:
virtual void myFunction()
{
cout << "1";
}
};
class DerivedClass1 : public BaseClass
{
public:
void myFunction()
{
cout << "2";
}
};
class DerivedClass2 : public DerivedClass1
{
public:
void myFunction()
{
cout << "3";
}
};
int main()
{
BaseClass *p;
BaseClass ob;
DerivedClass1 derivedObject1;
DerivedClass2 derivedObject2;
p = &ob;
p -> myFunction();
p = &derivedObject1;
p -> myFunction();
p = &derivedObject2;
p -> myFunction();
return 0;
}A. 123
B. 12
C. 213
D. 321
Answer: Option A

Join The Discussion