带有 ostream 和 istream 参数的构造函数

Constructor with ostream and istream parameters

我有一个关于实现具有 istreamostream 参数的 class 构造函数的问题。这些值将在 class 范围内使用。我正在构建一个会提问的游戏,我想使用 istream 参数来收集用户输入,并使用 ostream 在控制台中显示内容。

class MyClass{

public:
    MyClass();
    MyClass(ostream& show, istream& userInput);
    ~MyClass();

    void anotherFunction(string name, string lastName);
    void executeProgram();

任何人都可以解释解决方案并提供示例代码,以使 class 中的 istream 范围可访问吗?我如何在主要 class?

中调用它

编辑: 嗨,谢谢你的尝试,即使我没有关于这个的明确输出。

我真正想要的是使用这个构造函数作为我程序的用户界面。这是一个基于文本的游戏,将接受 3 个字符作为选项。我想使用这个构造函数来收集输入。我希望这是有道理的。

我在这里没有看到任何特别的问题(你的问题也没有提到任何问题)。例如

#include <iostream>
#include <fstream>
using namespace std;

class MyClass
{
public:
    MyClass() : _in(cin), _out(cout) {}
    MyClass(istream& in, ostream& out) : _in(in), _out(out) {}
private:
    istream& _in;
    ostream& _out;
};

int main()
{
    ifstream in("in.txt");
    ofstream out("out.txt");
    MyClass mc(in, out);
    ...
}

惯用的 C++ 方法是不在构造函数中获取两个流参数,而是为 class.

定义插入和提取运算符

是这样的:

class MyClass
{
public:
      /* define various accessors here */
};

ostream& operator<<(ostream& os, const MyClass& instance) { /* write out your class's representation here. */ }

istream& operator>>(istream& is, MyClass& instance) { /* set state in instance reading it from is. */ }