天天看點

C++:靜态成員函數,靜态資料成員,成員函數存儲方式

1.同一個類的若幹對象共享同一個成員函數代碼段,每一個對象中都不存在這個代碼段,

每個對象中隻有資料成員,是以對象的大小就是資料成員總和的大小,

但是要減去static資料成員的大小,因為static資料成員不屬于某一個對象,而是屬于類的,

被所有的對象所共享,用sizeof(objectname)的輸出可以驗證。

2.由于同一個類的若幹對象都引用同一個成員函數代碼段,如何使同一個代碼段引用不同對象的

資料成員?這就引出了this的概念,在每一個成員函數中都存在this指針,this指針指向目前的對象,

通過this指針成員函數就可以找到目前對象的資料了。

3.靜态資料成員必須初始化,并且隻能在類外初始化;由于靜态資料成員不屬于某一個對象,

是以不能通過構造函數的方式初始化靜态資料成員。