C++能从输入流读取数据给对象吗?

《C++Primer》练习7.15,编写构造函数
这是《C++Primer习题集》的答案代码:
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; }
};
这里会报错

img

我不理解从输入流直接读取数据给一个对象是什么意思,这应该没法读取吧?但这竟然是书上给的答案,我真的搞不懂了,求大家帮忙看看,非常感谢。

如果你重载了类的>>操作符,你就可以从输入流直接将内容输入到类内

*this是类对象,这个类没有重载输入流啊
类里面增加一个函数
istream& operator >> (istream& in ,const Person &p)
{
in>>p.strName>>p.strAddress;
return in;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632