C++ 的 std::cout
是定義在 <iostream>
庫中的,它是一個預定義好的輸出流對象,用于向標準輸出設備(通常是顯示器)打印數據。由于 std::cout
是一個標準庫組件,我們不能直接修改它的源代碼來拓展其功能。
但是,我們可以通過以下幾種方法來擴展 std::cout
的功能:
std::cout
重載一些運算符,以便以自定義的方式使用它。例如,你可以為 std::cout
重載 <<
運算符,以便在輸出時添加一些額外的操作。#include <iostream>
class MyStream {
public:
std::ostream& os;
MyStream(std::ostream& os) : os(os) {}
MyStream& operator<<(const std::string& s) {
os << "[MyStream] " << s;
return *this;
}
};
MyStream my_cout(std::cout);
int main() {
my_cout << "Hello, World!" << std::endl;
return 0;
}
std::ostream
引用作為參數,并在函數內部使用 std::cout
。這樣,你可以通過傳遞不同的 std::ostream
對象來擴展 std::cout
的功能。#include <iostream>
void print_with_prefix(std::ostream& os, const std::string& prefix) {
os << prefix;
}
int main() {
std::cout << "Hello, World!" << std::endl;
print_with_prefix(std::cout, "[MyStream] ");
std::cout << "Hello again!" << std::endl;
return 0;
}
std::cout
的功能。總之,雖然我們不能直接拓展 std::cout
,但通過上述方法,我們可以實現類似的功能。