c 中對類中私有成員中的靜態變數初始化

2021-08-04 04:37:41 字數 632 閱讀 7991

1.static成員的所有者是類本身和物件,但是多有物件擁有一樣的靜態成員。從而在定義物件時不能通過建構函式對其進行初始化。2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。3.靜態成員仍然遵循public,private,protected訪問準則。

4.靜態成員函式沒有this指標,它不能返回非靜態成員,因為除了物件會呼叫它外,類本身也可以呼叫。

今天寫程式出現:error lnk2001: unresolved external symbol "private: static int  cgns" (?y@cgns@@0ha)的錯誤,於是在網上找了下,發現是對static靜態變數初始化理解有誤,因此這裡記下來,為了以後看
這裡拿乙個例子來說明:

.h檔案

class test;

.cpp檔案

double test::a= 2.0; //

正確的靜態成員初始化

//所有的靜態成員在類體外定義時都不再寫static

void test::b(double tt)

c 中可以對類中私有成員中的靜態變數初始化嗎?

問題 我看的書上寫的對私有部分的訪問可以是公共部分的成員函式,也可以是友員函式,那麼可以直接對私有部分的靜態成員進行初始化嗎?回答 1.static成員的所有者是類本身和物件,但是多有物件擁有一樣的靜態成員。從而在定義物件時不能通過建構函式對其進行初始化。2.靜態成員不能在類定義裡邊初始化,只能在c...

C 中類中的靜態變數成員與靜態成員函式

宣告為static的類成員 成員資料或成員函式 稱為類的靜態成員特性 靜態變數成員的初始化 對於靜態變數成員的初始化,不能在建構函式的初始化列表中直接進行初始化 class date friend ostream operator private int year int month static ...

訪問C 類物件中私有成員變數的方法

原則上,c 類中私有變數不允許在類之外的其他任何地方訪問,一般來說功能完善的類都會提供 get,set 方法來操作類屬性值,但如果沒有 get set方法都沒有提供,比如使用的是第三方提供的 o 或者動態庫 來進行開發的,並且實際應用中我們確確實實需要改變其中某個物件的乙個私有引數,有沒有什麼辦法呢...