Re: [閒聊] 使用預設參數建構子當成預設建構子引發 …

看板C_and_CPP (C/C++)作者 (CA)時間16年前 (2009/04/12 13:17), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《chrisdar (克里斯)》之銘言: : 這邊有個程式例子,輸出確是0? : #include <iostream> : using namespace std; : class foo { : public: : int m_a; : inline foo(int a = int()): m_a(a) {} explicit inline foo( int = 0 ); : }; : test(0);本來該打成歐卻打成零 : 編譯器編譯成功,編譯器把 : 零 -> foo(零) 帶入副函數裡 輸出當然就變0了 : 該如何避免這類的問題? : 1.全面取消預設參數建構子? : 2.引入匈牙利命名法(變數名稱自帶型別辨識符號)? : 3.還有其他辦法嗎? 避免非預期的隱式轉換 -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.194.91

04/12 13:20, , 1F
好方法 謝謝您
04/12 13:20, 1F
文章代碼(AID): #19uNbsPT (C_and_CPP)
文章代碼(AID): #19uNbsPT (C_and_CPP)