【发布时间】:2011-08-02 09:23:27
【问题描述】:
我正在使用一个抽象类 std::ostream。有以下参考:
std::ostream &o = std::cout;
如果满足任何条件,我需要初始化 o,以便将输出重定向到 std::cout。如果没有,输出将被重定向到文件
if (!condition)
o = file; //Not possible
如何正确编写代码?
【问题讨论】:
-
这个问题更多是关于重新安装引用而不是 std::ostream,我建议更改标题。因为这个问题很好。
-
你需要理解 C++ 中的引用只是一个别名。因此,一旦引用被初始化,任何进一步的 operator= 都意味着只需更改引用所指的原始项目。一个很好的例子可以在下面史蒂夫的回答中找到。