作者NIKE74731 (做遊戲的心)
看板C_and_CPP
標題[問題] type convert operator & constructor
時間Wed Nov 18 02:47:07 2009
最近讀到關於type convert operator和type convert constructor
書中提到type convert constructor發生的時間點有二;
1.建立物件時
2.使用call by value之函數時,傳入參數為物件,但呼叫函數時,
傳入引數卻不是物件
關於2.我的想法是因為call by vlaue是將整個物件複製一份傳入到函數內,所以必須
利用傳入的引數來建立新的物件,所以就跳到1.的情況,請問這樣的想法是正確的嗎?
另外一個問題是關於書中的一段敘述:
運用類別除了可以享受多載運算子的便利,並且可以避免處理字元陣列的指標,但卻
也造成了無法使用c++中,以字元陣列為參數之函數的問題
請問"避免處理字元陣列的指標"的意思是什麼?我不太懂
再者,如果要使用字元陣列為參數之函數,大可使用像這樣的member function就好了阿
char * get_name(){return name;}
為什麼會造成問題?
最後一個問題
if(object_a == "my object" ){.....}
像上面這樣子的程式碼,compiler要怎麼分辨到底要使用type convert constructor
還是type convert operator?(object_a是一個物件)
問題很多很雜
請板上前輩們回答
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.53.228
推 vizshala:不對哦 call by value 是 unnamed object 11/18 10:43
→ vizshala:1.的話是 named object 兩個不同 11/18 10:45
→ vizshala:最後一個問題要看 operator==怎麼展開 11/18 10:46