在我的课程中,我应该用什么来改变cout / cin?

时间:2016-12-27 16:33:08

标签: c++ class oop tostring

所以基本上我只是在我的一个类方法(函数)中使用cout / cin用简单的代码编写了我的程序。我知道这很糟糕,不应该这样做,我应该用它来切换它们?

例如,现在我有人类。它有一些字段(变量),如性别,身高,年龄。

我有一个名为getInfo()的方法,它基本上是很多

cout << "Whats your age?" << endl;
cin >> age;

等等。我应该把它们改成什么?我应该使用像

这样的东西吗?
ostream& operator<<(ostream &o, const Human &s) 
istream& operator>>(istream &i, Human &s)

我写下这些函数,但它们基本上只是用于toString?

我该怎么用toString? (需要toString - 我的项目任务的任务)。

1 个答案:

答案 0 :(得分:2)

您可以对输入和输出流进行getInfo通用,例如:

void Human::getInfo(std::istream& input, std::ostream& output) {
    output << "What's your age?" << std::endl;
    input >> age;
    // etc.
}

toString通常会返回对象的字符串表示形式,因此它看起来像这样:

std::string Human::toString() const {
    std::string string;
    string += "Human(\n";
    string += "    age: " + std::to_string(age) + "\n";
    // etc.
    string += ")";
    return string;
}