如何插入在重载>>中输入的值运算符到setter

时间:2018-05-23 17:38:17

标签: c++ class operator-overloading

如果已经提出这个问题,我真的很抱歉。我真诚地试图通过网站变得更有文化,但仍然在努力解决具体问题。无论如何,我已经弄清楚如何超载“>>”运算符,但我现在正在努力将如何将该函数中确定的值设置为变量(对不起,如果没有意义的话)

以下是我对重载的>>所拥有的内容功能

istream& operator >> (istream& ins, Rectangle& inSides)
{
double insSide1, insSide2;

ins >> insSide1;

insSide1 = inSides._length;

ins >> insSide2;

insSide2 = inSides._width;

return ins;
}

这是我目前在main()

中的内容
Rectangle bothOpp;
{
        cin >> bothOpp;

        bothOpp.getLength();
        bothOpp.getWidth();

        bothOpp.print();

}

我想我要问的是如何将用户的输入设置为setter中定义的值?非常感谢你的时间(:

哦&如果需要,我可以上传我创建的setter函数,我只是不想轰炸你们。

1 个答案:

答案 0 :(得分:1)

您需要修改inSides

您可以获得构建Rectangle对象所需的输入,但您从未对其进行任何操作!试试这个(对你的Rectangle类做出一些假设......):

istream& operator >> (istream& ins, Rectangle& inSides)
{
    double len, wid;
    ins >> len >> wid;

    inSides = Rectangle(len, wid);
    //or if you haven't made a constructor/assignment operator...
    inSides._length = len;
    inSides._width = wid;

    return ins;
}