我與操作符重載掙扎,因爲我希望它允許鏈接重載移位運算符<<允許鏈接
class A{
int a;
public:
void doSomething(char *str);
A operator<<(char *str);
}
所以我有這個類和什麼我能做的就是採取一個字符串,做一些事情,這對於這個問題並不重要。
我現在可以做的是
A *counter = new A();
counter->doSomething("hello");
如果我實現重載移位運算符
A A::operator<<(char *str)
{
this->doSomething(str);
return this;
}
我能寫這樣的
A *counter = new A();
(*counter) << "hello";
我希望我沒有在這裏犯了一個錯誤,因爲現在我想知道我怎麼可以允許鏈接
(*counter) << "hello" << "test";
我知道,與鏈接它會做到這一點
這顯然沒有任何意義,因爲有兩個字符串/字符數組 但我知道有一種方法可以做到這一點。我GOOGLE了它,但每個問題只是關於鏈接在同一類型的實例
然後我試着把兩個參數放入函數並添加它作爲一個朋友......我不知道,但也許我必須做一個新的重載操作符,類型爲char*
或流對象,並使其成爲A
的朋友?
感謝您的幫助,我想應該有一種簡單的答案,我現在沒有看到。
你的運營商會更好地考慮'const char *'。 –