看板 C_and_CPP 關於我們 聯絡資訊
最近讀到關於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