微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决具有ostream和istream参数的构造函数

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

class MyClass{

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

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

有人可以解释一种解决方案并提供示例代码,以使该类中istream的范围可访问吗?在班上我怎么称呼这个?

编辑: 嗨,谢谢您尝试我什至没有清晰的输出

我真正想要的是使用此构造函数作为程序的用户界面。这是一个基于文本的游戏,将接受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 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. */ }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。