class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
在基類中,因爲我是私有的,所以它不應該被繼承到派生類。因此,基類應該充當空類。 sizeof空類是1,那麼爲什麼它顯示爲4?空的派生類繼承自非空基類
class Base
{
int i ;
};
class Derived : public Base { } ;
int main()
{
cout << sizeof(Derived);
}
Output :
4
在基類中,因爲我是私有的,所以它不應該被繼承到派生類。因此,基類應該充當空類。 sizeof空類是1,那麼爲什麼它顯示爲4?空的派生類繼承自非空基類
一個Derived
類仍含有i
在Base
,它只是無法訪問,所以大小4是因爲i
的大小仍然是4,因爲Base
大小爲4比方說,例如那Base
有一個函數 public: int getI() {return i;}
那麼你就能夠調用Derived::getI()
,因此派生確實需要包括專用基礎件。
這裏,派生類中定義公共..意味着這裏定義的「包括:公共基礎」
由此派生類可以訪問所有公共和基礎class..it的私有成員將盡一切私有成員公開在衍生class..thus輸出i.not 1.如果4堂妹你所寫的私人而不是那麼它會給輸出1 ..
爲什麼要'sizeof'一個空類是1?順便說一句,它不是空的。 –
「...因爲我是私人的,所以不應該繼承......」 - 胡說! – valdo
P.S.如果你真的相信'我'不會被繼承,因爲它的'私人',那麼爲什麼你的'派生'繼承了它呢? – valdo