C 基礎 類的各種成員方法

2021-10-09 04:20:43 字數 1302 閱讀 8802

#include

using

namespace std;

class

goods

void

show()

//普通成員方法 普通*this

void

show()

const

//常成員方法 只要是唯讀操作的成員方法一律實現成常成員方法 const *this

static

void

showgoodscount()

//靜態成員方法,沒有this指標

private

:char _name[20]

;int _amount;

double _price;

static

int _count;};

int goods::_count =0;

//static成員變數必須在類外進行定義並且初始化

intmain()

普通成員方法

屬於類的作用域

呼叫該方法時,需要依賴乙個物件

可以任意訪問物件的私有成員變數

編譯時編譯器會新增this形參變數

static靜態成員方法

屬於類的作用域

用類名作用域來呼叫方法

可以任意訪問物件的私有成員(只能呼叫其他的static靜態成員)

沒有this指標

靜態成員變數所有物件共享

要在類外進行定義

int 類名::靜態成員變數名=初始值;

static int 變數名

不屬於物件,而是屬於類級別

靜態成員方法 用類的作用域呼叫

如 類名::成員方法名

常成員方法

屬於類的作用域

呼叫依賴乙個物件,普通物件或常物件都可以

可以任意訪問物件的私有成員,但是只能讀,而不能寫

常方法裡this的指向被修飾成了const

常物件呼叫的方法必須是常方法

這樣生成的this才能是const* this 才能接收常物件的位址

三者的本質區別在於this指標,普通成員方法新增普通this指標

常成員方法新增const this ,而靜態成員方法沒有this指標

普通方法可以呼叫常方法,反之,不可以

常方法可以呼叫靜態方法,反之,不可以

普通方法可以呼叫靜態方法,反之,不可以

常方法不能修改普通成員,但可以修改靜態成員

C 各種成員變數

來自 黃邦勇帥 即把物件宣告為常量,即 const hyong m,常量物件不能呼叫可能改變物件的值的函式,因此常量物件只能呼叫類中的 const 常量函式,因為不是 const 的函式都有可能改變物件的值。常量物件可以呼叫類中的公有成員,如 m.a 就是正確的如果 a 是公有的。不能對常量物件的公...

C 類的成員(字段 屬性 方法)

前面定義的person的類,裡面的成員包括 字段 屬性 方法 事件等,此外,前面說的巢狀類也是類的成員。a.類的成員為分 靜態成員 static 和非靜態成員 b.靜態成員用static標識,不標識則預設為非靜態成員 c.靜態成員屬於類所有,動態成員則屬於例項所有,即物件 d.靜態成員為類所有例項共...

C 類模板類成員的類外定義方法

舉個栗子 template 代表這是個類模板 class binarytree private 類模板的建構函式 類外定義如下,不能給建構函式指定返回值,因為返回物件與構造時new衝突,沒有返回承載的物件 templatebinarytree binarytree 類模板的普通成員函式的類外定義 首...