首页 > 解决方案 > 将 Ofstream 移动到类 c'tor

问题描述

主要我已经开始了ofstream这样的:

std::ofstream to(argv[2]);

现在我想将它(不是副本)移动到我的类构建器中,如下所示:

class MyClass{
    std::ofstream output;
    MyClass(const std::ofstream &output=std::cout) output(output): {}
};

但这会弹出很多错误,知道为什么会这样吗?

标签: c++streamofstream

解决方案


而不是移动ostream你应该参考它。此外,您的类应该包含一个ostream&否则默认构造MyClass将不起作用。此外,构造函数应该采用ostream&,而不是const ofstream&,如下所示:

class MyClass{
    std::ostream &output;
  public:
    MyClass(std::ostream &output = std::cout) : output(output) {}
};

这是一个演示


推荐阅读