天天看點

C++:‘std::ostream& String::operator<<(std::ostream&, const String&)’ must take exactly one argumentC++:‘std::ostream& String::operator<<(std::ostream&, const String&)’ must take exactly one argument

C++:‘std::ostream& String::operator<<(std::ostream&, const String&)’ must take exactly one argument

标簽: C++編譯錯誤

by 小威威

以下是我編譯某些源檔案是出現的問題:

錯誤資訊如下:

‘std::ostream& String::operator<<(std::ostream&, const String&)’ must take exactly one argument

提示編譯出錯的這段代碼是重載輸出運算符。問題是出在String::上。我是将重載的這個函數定義為友元函數,既然是友元函數,那麼就不應該出現String::,因為友元函數并不屬于一個類的成員方法,是以将類名和範圍解析符删去即可。

在這裡再補充一種編譯出錯:

default argument given for parameter  
           

提示編譯出錯的這段代碼是用于定義構造函數,出錯的原因在于:建構預設的構造函數,預設參數值應該在聲明中出現而在實作中應該删去,也就是說,定義預設值隻能在函數聲明時操作,不能在函數實作時操作。

以上内容皆為本人觀點,歡迎大家提出批評和指導,我們一起探讨!

繼續閱讀