我想讓cout每當我調用它時總會打印額外的字符串(在上面和下面)。對我來說實際上很奇怪,因爲我主要使用Java和C#。 編輯:也許我們可以定義「y」字符串或類似的東西的其他值?如何在C++中重載cout行爲
例
代碼:
#include <iostream>
int main(){std::cout<<"y\n";}
結果(打印):
x
y
z
我不想改變int main()
方法只是也許重寫<<
爲字符串類型?
或MAYBE 使cout調用其他方法?
我想讓cout每當我調用它時總會打印額外的字符串(在上面和下面)。對我來說實際上很奇怪,因爲我主要使用Java和C#。 編輯:也許我們可以定義「y」字符串或類似的東西的其他值?如何在C++中重載cout行爲
例
代碼:
#include <iostream>
int main(){std::cout<<"y\n";}
結果(打印):
x
y
z
我不想改變int main()
方法只是也許重寫<<
爲字符串類型?
或MAYBE 使cout調用其他方法?
我不認爲你可以用cout來做到這一點。你可以做的是創建一個簡單的I/O包裝器,它可以進行額外的打印,然後調用cout來完成真正的工作。
或者替換couts streambuf來做到這一點 – PlasmaHH
@PlasmaHH它無法分辨調用操作符<<的末尾在哪裏。 –
對於OP,您還需要使用移動語義和析構函數在''''操作字符串的末尾執行此操作,而不是在每個操作後執行此操作。 –
您不能爲標準類型重載'operator <<'。 –
@meh也許重載字符串運算符會有幫助嗎? – Yoda