I have a base class and two derived class. One derived class which inherits base class as virtual and another one as non virtual. I have given below my codin.
// This program uses virtual base classes.
#include <iostream>
using namespace std;
class base {
public:
int i;
};
// derived inherits base as not virtual
class derived : public base {
public:
int x;
};
// derived1 inherits base as virtual.
class derived1 : virtual public base {
public:
int j;
};
int main()
{
base b;
cout<<endl<<sizeof(b)<<" ";
derived obn;
cout<<sizeof(obn)<<" ";
derived1 ob1;
cout<<sizeof(ob1);
return 0;
}
After running this program i get the below output
4
8
12 > "Why the virtual derived class having 12 bytes? "