C++:「operator<<(cout, 1);」錯誤

大家好:

我之前一直以為以下二個指令相同
「operator << (cout, 1);」
「cout << 1;」
但今天意外發現「operator << (cout, 1);」會發生ambigious
請問這二個指令有什麼不同呢?
為什麼第一個會error而第二個不會呢?

謝謝
Update: To 龍:請問
1.就我所知「operator<<」是以friend型式出現在class裡,
所以class呼叫方法是「operator<<(cout, obj);」。
而你說的built-in type方法是「cout.operator<<(obj)」,
意思是說built-in type的operator<<是定義在ostream內的嗎?
Update 2: 2.我看Dev-C++訊息發現「operator<<」overload幾個版本都...
但沒有int版,因此error,是否如我上一點所說的int版定義在ostrea...
為什麼「char相關」的版本不定義在ostream內呢?
Update 3: 查了一下ostream內容,built-in type真的定義在裡面^^
Update 4: 龍:你的解答是否要移到回答部份呢,在意見欄案子結不了 0.0。
2 answers 2