0
class Base 
{
   int i ;
};

class Derived : public Base { } ;

int main()
{
   cout << sizeof(Derived);
}

Output :
 4

在基类中,由于 i 是私有的,它不应该被继承到派生类。因此,Base 类应该充当空类。并且 sizeof 空类是 1 ,那为什么它显示为 4 ?

4

3 回答 3

4

一个Derived类仍然包含iin Base,它只是不可访问,所以大小 4 是因为i

于 2013-09-25T19:23:58.973 回答
0

大小仍然是 4,因为 的大小Base是 4。例如,假设Base有一个函数 ,public: int getI() {return i;} 那么您就可以调用Derived::getI(),因此 Derived 确实需要包含私有基本成员。

于 2013-09-25T21:34:18.553 回答
-2

在这里,派生类是公开定义的..在定义中表示“:公共基础”

因此派生类可以访问基类的所有公共和私有成员..它将使该派生类中的所有私有成员都公开..因此输出是i.not 1的4个coz.如果你写私有而不是它会给出输出 1..

于 2014-02-21T18:12:06.963 回答