class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
在Base类中,由于我是私有的,因此不应该继承到Derived Class。因此,Base类应该充当空类。而sizeof空类是1,那么为什么它显示为4?
答案 0 :(得分:4)
Derived
类仍然在i
中包含Base
,它只是无法访问,因此大小为4是因为i
答案 1 :(得分:0)
大小仍为4,因为Base
的大小为4.让我们说Base
有一个函数
public:
int getI() {return i;}
那么你就可以调用Derived::getI()
,因此Derived确实需要包含私人基础成员。
答案 2 :(得分:-2)
这里,派生类是公开定义的。这里的定义是“:public base”
因此派生类可以访问基类的所有公共成员和私有成员。它将使所有私有成员在该派生类中公共。如果输出为4,则为i.not 1.如果你写私有而不是它会给出输出1 ..