c++ - 如何将在重载 >> 运算符中输入的值插入 setter

标签 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 函数,我只是不想轰炸你们。

最佳答案

您需要修改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;
}

关于c++ - 如何将在重载 >> 运算符中输入的值插入 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50494386/

相关文章:

C++:不寻常的运算符重载

c++ - 模板类的友元运算符

c++ - 在 Mac 上构建 opencv 2.4.6 - Mavericks

c++ - STL 容器中的搜索元素

python - 通过父初始化器以外的东西初始化子类的实例

c++ - 重载构造函数中的代码重复

c++ - 重载 operator<< 和 operator!=

c++ - C++ 中此语法 std::class<>{}(arg1, arg2) 的含义是什么?

c++ - 如何确定用于读取的 QIODevice 的总大小?

C++ - 如何从同一类的静态函数访问类的私有(private)成员?