1. 程式人生 > >C++中類的靜態成員與實例成員的區別

C++中類的靜態成員與實例成員的區別

nbsp 作用域 訪問類 靜態數據成員 直接 初始化 實例成員 sta 一個

在C++類中,由static定義的(靜態)數據成員 和 (靜態)函數成員屬於類;相反沒有被static定義的成員和函數稱為實例數據成員和實例函數成員,他們屬於某一個實例(對象)。

在內存中,類的靜態數據成員占有一塊特定的內存空間,被該類的所有實例(對象)共享。而同一個類的不同對象的實例數據成員相互獨立,占有各自的存儲空間。

定義類後,必須在類外的文件作用域中定義靜態數據成員,即為它們分配存儲空間。

在程序中可以直接使用類名和域解析操作符::直接訪問類的共有靜態數據成員和共有函數成員,不能直接訪問類的私有成員。

不能在類的構造函數中初始化靜態數據成員,因為靜態數據成員不屬於某一個具體的類。

在類的靜態函數成員中,只能訪問類的靜態數據成員,而不能訪問類的實例數據成員,因為在調用靜態函數成員時,可能還沒有創建類的具體實例(對象)。

C++中類的靜態成員與實例成員的區別