C static 以及類的大小

2021-06-18 23:25:54 字數 974 閱讀 6259

一、整體**

countedobject.h

#ifndef _counted_object_h_

#define _counted_object_h_

class countedobject

;#endif // _counted_object_h_

countedobject.cpp

#include "countedobject.h"

int countedobject::count_ = 0; // 靜態成員的定義性宣告

countedobject::countedobject()

countedobject::~countedobject()

int countedobject::getcount()

01.cpp

#include "countedobject.h"

#include using namespace std;

int main(void)

~test()

void testfun()

{cout<<"x="<

二、執行結果

0  1   2   1

4(int佔4個位元組)

三、解釋

1、靜態變數被所有物件共享,沒有物件時候就有靜態的變數和方法。所以靜態的函式不能呼叫非靜態的變數和方法。反之,可以。

2、先有靜態成員的引用性宣告,但不能賦值。然後在靜態成員的定義性宣告中賦值。

3、static const int可以只在引用性宣告中賦值。

4、類大小計算遵循前面學過的結構體對齊原則

類的大小與資料成員有關

與成員函式無關 

類的大小與靜態資料成員無關

虛函式對類的大小的影響

虛繼承對類的大小的影響

空類長度為1

類的大小以及虛函式表

一 類的大小 乙個類中,如果什麼都沒有,那麼它所佔的位元組為1,如果在類中新增了乙個函式 非虛函式 那麼它的大小還是1,而如果是虛函式,建立物件時會多乙個虛函式表指標 vptr,那麼對於32位系統來說是4位元組,對於64位系統來說是8位元組。二 虛函式 類中函式前有virtual這類關鍵字,則此函式...

初始化CStatic字型顏色與大小

使用靜態文字框時,我們都希望能改變上面的背景色,字型大小等,使介面看上去更加美觀。以下使用最簡單的方法實現此功能。1 在對話方塊初始化函式oninitdialog 中新增要顯示的文字,setdlgitemtext idc set data,t 引數設定 idc set data為靜態文字框id 2 ...

C 空類以及沒有成員變數的類的大小

關於c 中空類的大小為1,我們大家都有所了解,但是除了空類之外的其他一些沒有成員變數的類的大小,還是有很多不明之處的。include usingnamespacestd classa classb classc publica classd publicb,publicc intmain 程式執行的...