class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
在基类中,由于 i 是私有的,它不应该被继承到派生类。因此,Base 类应该充当空类。并且 sizeof 空类是 1 ,那为什么它显示为 4 ?
class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
在基类中,由于 i 是私有的,它不应该被继承到派生类。因此,Base 类应该充当空类。并且 sizeof 空类是 1 ,那为什么它显示为 4 ?
一个Derived
类仍然包含i
in Base
,它只是不可访问,所以大小 4 是因为i
大小仍然是 4,因为 的大小Base
是 4。例如,假设Base
有一个函数
,public:
int getI() {return i;}
那么您就可以调用Derived::getI()
,因此 Derived 确实需要包含私有基本成员。
在这里,派生类是公开定义的..在定义中表示“:公共基础”
因此派生类可以访问基类的所有公共和私有成员..它将使该派生类中的所有私有成员都公开..因此输出是i.not 1的4个coz.如果你写私有而不是它会给出输出 1..