c++ - 将 Ofstream 移动到类 c'tor
问题描述
主要我已经开始了ofstream
这样的:
std::ofstream to(argv[2]);
现在我想将它(不是副本)移动到我的类构建器中,如下所示:
class MyClass{
std::ofstream output;
MyClass(const std::ofstream &output=std::cout) output(output): {}
};
但这会弹出很多错误,知道为什么会这样吗?
解决方案
而不是移动ostream
你应该参考它。此外,您的类应该包含一个ostream&
否则默认构造MyClass
将不起作用。此外,构造函数应该采用ostream&
,而不是const ofstream&
,如下所示:
class MyClass{
std::ostream &output;
public:
MyClass(std::ostream &output = std::cout) : output(output) {}
};
这是一个演示。
推荐阅读
- python - 属性错误:“str”对象没有属性“str”
- apache-spark - 如何计算组中事件之间的时间
- monitoring - 除了 Azure databricks sparkUI,我如何访问实时驱动程序日志(不延迟 5 分钟)
- python - 选择 pandas groupby 中的前 n 个项目并计算平均值
- javascript - 从窗口中删除所有侦听器
- django - 仅允许电子邮件访问徽标所在的站点(Django)
- c++ - 派生类方法中的基类参数
- android - Android ADB - 无法连接到“192.168.1.4:5037”:连接被拒绝
- java - 如何重定向按钮或链接到数据库中的每个数据?- Java网络应用程序
- javascript - 复制 xpath 元素不适用于 Python