#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 類模板的普通成員函式的類外定義 首...