1、不要用函式的行參,行參是用來向函式裡 傳遞引數的。
如class obj
obj(){}
obj(const obj& obj)
class objs
objs(obj m_obj = obj())
void getobj(obj& m_obj)
obj& getobj()
void getobj(obj* obj_ptr)
void getobj1(obj* obj_ptr)
private:
obj one_obj;
int main()
objs m_objs;
obj m_obj;
obj* m_obj_ptr;
m_objs.getobj(m_obj); //可以取得資料成員,但是會觸發拷貝建構函式。
obj& m_obj = m_objs.getobj();//可以取得資料成員,且不會觸發拷貝建構函式,效率高,根據是否對資料成員修改,返回值加const修飾。
getobj(m_obj_ptr); //不能取得資料成員,原因是指標是進行的值傳遞,指標已經被複製。
getobj1(m_obj_ptr); //可以取得資料成員,因為雖然指標被複製,但複製後指標同原指標指向同乙個位址。
return 0;
C 學習筆記 指標和引用的注意事項
一 指標 1指標變數的定義,由資料型別後跟星號,再跟指標變數名組成。2 表示乙個實體的位址,此符號可用來對指標變數初始化和賦值 如 int count 18 int iptr count int ip ip count 3 除了可以用來定義指標,標緻乘法運算子,還可以做間訪操作 間訪操作就是 取指標...
c 中引用變數的注意事項,和指標的區別
1.定義引用時必須初始化 變數或者常量 且初始化後不能再指向其他變數或者常量。指標卻可以在定義時不初始化,可以在定義後的任何地方初始化,或者改變指向的物件。2.存在指標的引用,但是沒有引用的指標,因為引用在概念上只是乙個代號,沒有實體空間。3.不能定義引用陣列,即便用類似 int b 5 初始化也不...
引用的特點和注意事項
引用,是變數的別名,就是你自己有個名字,比如李四,那你還有另外乙個小名,叫小四,小四就是你的別名,別人叫你的時候你就會答應,那麼李四和小四是同乙個人,那麼某個變數的引用是一樣的,對該引用的操作就是對原變數的操作,本身不占用儲存單元,也不是乙個新的資料型別。不能建立陣列的引用 引用在函式傳參時的特點 ...