Adding virtual removes the error : type 'base' is not a direct base of derived class
-
29-10-2019 - |
سؤال
Conside the following sample code below:
#include <iostream>
using namespace std;
class base
{
public:
base()
{
cout << "ctor in base class\n";
}
};
class derived1 : public base
{
public:
derived1()
{
cout <<"ctor in derived1 class\n";
}
};
class derived2 : public derived1
{
public:
derived2() : base()
{
cout << "ctor in derived2 class\n";
}
};
int main()
{
derived2 d2obj;
return 0;
}
This gives the error:
error: type `base' is not a direct base of `derived2'
Why is this error occurring? If i make the base class virtual, the error is no longer there. What is the reason for this?
لا يوجد حل صحيح
لا تنتمي إلى StackOverflow