我只是想知道我们可以直接将整数值分配给对象。在这里,我只想为对象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;
}
但是这样做会导致错误
没有运算符“ =”与这些操作数匹配-操作数类型为:有理数=整数
答案 0 :(得分:3)
您可以编写一个转换构造函数和一个赋值运算符:
class rational
{
public:
rational (int val)
{
// initialize as you want
}
rational& operator= (int val)
{
// Assign as you want
return *this
}
}
但是,目前尚不清楚您要在这里做什么。还有其他问题:
int
,而不是单个int
x.assign(x)
看起来像是尝试将x
分配给自己assign
不会对其参数产生持久影响,因为它没有按值传递