这是c++ primer 上的一道习题,题目要求给Person类添加正确的构造函数。
我下面的代码是按照参考答案敲的。
最后一个构造函数 本意是“接受istream&并从中读取对象的信息”
但是编译后出现如下错误:
“**错误(活动) E0349 没有与这些操作数匹配的 ">>" 运算符** ”
希望给出解决方案,谢谢。
代码如下:
#include <string>
#include <iostream>
using namespace std;
class Person {
private:
string strName;
string strAddress;
public:
Person() = default;
Person(const string &name, const string &add)
{
strName = name;
strAddress = add;
}
Person(istream &is) { is >> *this; } //这里编译无法通过
public:
string getName() const { return strName; }
string getAddress() const { return strAddress; }
};