C 各種成員變數

2022-05-18 01:31:05 字數 1512 閱讀 9639

來自:黃邦勇帥

即把物件宣告為常量,即 const hyong m,常量物件不能呼叫可能改變物件的值的函式,因此常量物件只能呼叫類中的 const 常量函式,因為不是 const 的函式都有可能改變物件的值。

常量物件可以呼叫類中的公有成員,如 m.a 就是正確的如果 a 是公有的。

不能對常量物件的公有成員重新賦值,如 m.a=3 就是錯誤的。但可以對類中的公有靜態成員變數重新賦值,因為靜態成員變是不屬於這個常量物件,他是屬於整個類的。

物件陣列即陣列中的每個成員都是乙個物件,例如 hyong a[3];其中 a[0],a[1],a[2]都是乙個 hyong 型別的物件。

物件陣列的初始化,如果有預設建構函式則語句 hyong a[3]將呼叫預設建構函式初始化 3 個物件;

如果物件陣列帶有乙個引數的建構函式則可以這樣初始化 hyong a[3]=;

如果物件陣列帶有多個引數的建構函式,則初始化方法為 hyong a[3]=。

即把物件作為另乙個類的成員。比如 class b

如果要用帶引數的建構函式初始化x, 必須用初始化列表初始化

例子:

#include using

namespace

std;

class

a a(

inti)

a(int i, int

j)

};class

b b(

inti)

b(int i, int

j);};

b::b(

int i, int j):a(i), b(j), x(a(3,4)){} //

用含引數的建構函式初始化成員,用初始化列表

intmain()

如果不用初始化列表,在建構函式裡用兩個變數的建構函式給x賦值,結果是

#include using

namespace

std;

class

a a(

int i, int

j)

};classb};

intmain()

1.宣告類成員指標的方式為:int hyong::*p1 宣告了乙個指向類中整型成員的指標 p1。 int (hyong::*p2)()注意括號,宣告乙個指向反回型別為 int 的無引數的函式的指標 p2

2.類成員指標即指向類中成員的指標注意是直接指向類中的成員而不是指向物件的某一成員的指標, 即與指標 p=&m.a是不一樣的。

類成員指標提供的是成員在類中的物件的偏移量,不是乙個真正的指標。

因為不是乙個真正的指標所以不能通過指標來訪問類中的成員,而只能通過特殊的運算子.*或->*來訪問指標指向的成員。

比如*p1=2 ,hyong::*p1=2 是錯誤的,不能對類成員指標指向的類成員直接賦值。cout<

C 成員變數

變數 成員變數 在乙個函式內部定義的變數,值與函式無關,作用域在類的內部。在每乙個類的物件裡面。本地變數 值與函式有關,作用域在函式內部 同名時 則按照 就近原則 所有函式裡都可以直接使用成員變數,在類的任何函式裡都可以直接用 函式 field 字段,也就是類的成員變數 宣告 只是告訴別人有這麼乙個...

C 靜態成員變數,靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...

c 靜態變數,靜態成員變數,靜態成員函式

c 靜態變數的生存期和程式的執行期相同,使用關鍵字static宣告 static int i 5 靜態變數和全域性變數有點類似,儲存在記憶體靜態 全域性變數區。靜態變數不會因為函式的呼叫而產生乙個副本,也不會隨著函式返回而失效,靜態變數在函式執行期間是共享的。c 類的靜態成員是解決同乙個類的不同物件...