Re: [閒聊] 使用預設參數建構子當成預設建構子引發 …
※ 引述《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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章