為什麼c++中父類的私有變數依然要在子類中佔用記憶體空間?
作者:由 Funsimple 發表于 體育時間:2022-01-03
你是不是忘了還有繼承來的東西?
#include
class
B
{
public
:
B
()
:
a
(
1
)
{}
void
()
{
std
::
cout
<<
a
;
}
private
:
int
a
;
};
class
D
:
public
B
{};
int
main
()
{
D
d
;
d
。
();
}
想想看如果a不佔記憶體的話
D::print
要怎麼實現。
雖然父類的私有變數在子類中不能直接訪問,但是從父類繼承而來的成員函式可以間接訪問。
理解反了,先繼承,再被加上訪問控制。
不佔空間,要繼承有啥用?
為了保證基類的完整性啊,看一下下面的程式碼:
base* p = new A();
如果子類A中沒有一個完整的基類,那麼請問這裡的p指向了哪裡?還能不能當基類來用?
上一篇:晚餐吃什麼可以減肥最有效?
下一篇:居家最實用的廚房神器有哪些?