推 chrisdar:好方法 謝謝您 04/12 13:20
※ 引述《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