1st edition: 20130117 08:03:00
2nd edition: 20131215 21:39:50
真令人驚訝:
'a' type is int in c;
sizeof('a'): 4
'a' type is char in c++;
sizeof('a'): 1
這篇提到的問題: http://www.ptt.cc/bbs/C_and_CPP/M.1357715450.A.04C.html 在 Expert C Programming 上看到彼此的不同。
永遠有難倒人的題目。小心走火入魔變成王語嫣。
這可能有不少人知道, 但為什麼 c++ 要做如此的改動呢?
原因出在 iostream library:
cout << 'X'; 會得到 88 (X ascii code), 因為
operator<<(int)
operator<<(char)
這兩個無法符合 overloaded 規則, 這是被當作是相同的參數函式, 在將 'X' 當作 char 而不是 int 後, cout 才能正常印出 char。
ref: The Design and Evolution of C++ 11.2 section
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。