#include<iostream>
using namespace std;
class grandparent
{
public:
int x;
};
class parent1 : virtual public grandparent
{
public:
int y;
};
class parent2 : virtual public grandparent
{
public:
int z;
};
class child : public parent1, public parent2
{
};
int main()
{
child obj;
cout<<sizeof(obj)<<endl;
}
Output: 20
#include<iostream>
using namespace std;
class grandparent
{
public:
int x;
};
class parent1 : public grandparent
{
public:
int y;
};
class parent2 : public grandparent
{
public:
int z;
};
class child : public parent1, public parent2
{
};
int main()
{
child obj;
cout<<sizeof(obj)<<endl;
}
Output: 16
When parent1 and parent2 inherited without virtual then I got object size of child is 16? but when parent1 and parent2 inherited with virtual then why I got size of child 20 instead of 12?s