我们可以给对象分配一个整数吗?

时间:2020-10-21 07:13:03

标签: c++

我只是想知道我们可以直接将整数值分配给对象。在这里,我只想为对象x分配一个有理值(22/7);

#include<iostream>

class rational {
    private:
        int num = 22, den = 7;
    public:
        void assign(rational x) {
            x = num / den;
        }
};

int main() {
    rational x;
    x.assign(x);
    return 0;
}

但是这样做会导致错误

没有运算符“ =”与这些操作数匹配-操作数类型为:有理数=整数

1 个答案:

答案 0 :(得分:3)

您可以编写一个转换构造函数和一个赋值运算符:

class rational
{
public:
  rational (int val)
  {
     // initialize as you want
  }

  rational& operator= (int val)
  {
     // Assign as you want
     return *this
  }
}

但是,目前尚不清楚您要在这里做什么。还有其他问题:

  1. 您的课程包含一对int,而不是单个int
  2. x.assign(x)看起来像是尝试将x分配给自己
  3. assign不会对其参数产生持久影响,因为它没有按值传递
相关问题