我想了解運營商重載如何工作。運營商的解釋<< overload
我想代碼,以便我可以寫
Log(Log::LEVEL_ERR) << "fatal error: " << 13 ;
而對於字符串和重載運算符使用數量兩者。
我現在有
class Log{
public:
std::ostream& operator<<(char const*);
}
std::ostream& Log::operator<<(char const* text){
if (Log::isToWrite()) {
printLevel();
std::cout << text;
}
return std::cout;
}
這隻能得到是我的字符串,但數量不限,爲什麼呢?
編輯 @bitmask只是要清楚,你的意思是實現這樣的:
class Log{
public:
friend Log& operator<<(Log& in, char const* text);
}
friend Log& operator<<(Log& in, char const* text){
if (in.isToWrite()) {
in.printLevel();
std::cout << text;
}
return std::cout;
}
因爲我得到這些,現在到處:
error: Semantic Issue: Invalid operands to binary expression ('Log' and 'const char [15]')
也許這是非常簡單的,但你能拼出來給我?
我真的不明白。
,因爲它需要一個char *,和一個int不是隱式可轉化爲char * – 2012-04-02 00:24:45