一、靜態成員
1.如果想獲得一共例項化了多少個物件,這個計算一共例項化了多少個物件的變數不應該屬於某乙個物件,應該屬於這個類,所以我們把這個變數設定為靜態的。
2.如果把變數設定為靜態的,則這個變數不屬於任何的物件,而是屬於整個類的。這個靜態變數不是例項化多少個物件就有多少個,而是只有乙個。
3.讓乙個變數屬於這個類,在所有的對像中都不存在呢? 在定義時加上static
4.怎麼訪問靜態變數 需要在public裡面定義乙個函式,用這個函式來獲取這個靜態變數的值。那麼這個函式也應該是屬於整個類的。於是我們把這個函式也設定為static
5.這個靜態變數在資料成員處只是宣告了,但是也是需要分配空間和初始化的。分配空間和初始化的步驟就是在全域性變數中賦值
class person
person()
person(char *name, int age, char *work = "none")
person(person &per)
~person()
if (this->work)
} void setname(char *n)
int setage(int a)
age = a;
return 0;
} void printinfo(void)
{ //printf("name = %s, age = %d, work = %s\n", name, age, work);
cout<<"name = "<6.如果在靜態函式中訪問非靜態資料成員時就會出問題,因為它不知道訪問哪乙個類的name age work
7.這個靜態函式也可以在類外面進行定義,再進行定義的時候就不需要再加static了,但是在類裡定義需要有static的宣告。
8.類內的static變數初始化時需要放在main函式之外,需要在例項化物件之前就定義好靜態資料成員,它並不是全域性變數,它是在類名空間內的
9.在呼叫了靜態函式的時候,也可以用per1.getcout,和使用person::getcount的效果是相同的。
二、友員
1.c++裡一般用引用傳遞引數
2.c++在類用friend宣告某個函式是這個類的友員,那麼在這個友員函式裡就可以直接訪問這個類的private的資料成員
20201028 C 建構函式
一 建構函式 1.為什麼引入建構函式 2.所謂建構函式就是和類名相同的函式,可以帶引數也可不帶引數,也可以帶有不同的引數。3.在構造類物件的時候,根據傳進來的引數來判斷是呼叫哪乙個建構函式。4.如果乙個沒有引數的建構函式,那麼在構造類物件的時候不要寫圓括號 因為學了圓括號不是構造物件,而是宣告 5....
C 學習筆記(一)靜態成員 友員
1.如何定義靜態成員 a.在類中宣告的時候,加上static關鍵字即可 class test b.宣告完之後,在類外進行定義 include using namespace std class test private 靜態資料成員 static int a int test a 1 在這裡給靜態成...
c 學習六(靜態成員和友員函式)
靜態資料成員 在類裡面宣告為static靜態資料成員,但是要在類外面定義和初始化靜態資料成員。因為這個靜態資料成員是屬於類的,我們想要在所以的物件定義之前就初始化這個靜態資料成員。靜態函式 也是在類裡面在函式名前面新增static,在靜態函式中不能訪問非靜態變數。所以靜態函式中只能訪問靜態資料成員。...