带有 ostream 和 istream 参数的构造函数
Constructor with ostream and istream parameters
我有一个关于实现具有 istream
和 ostream
参数的 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. */ }
我有一个关于实现具有 istream
和 ostream
参数的 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. */ }