【发布时间】:2021-04-27 10:32:48
【问题描述】:
我正在研究一个应该能够进行基本算术运算的整数类。整数值存储在一个数组中,其中每个数组元素都包含两个整数值。我把这个整数数组转换成成员变量整数。
class Integer {
private:
char* arr;
bool t;
int integer;
int arr_len;
public:
...
Integer operator-();
Integer operator+(Integer& i);
...
};
第一个运算符应该只是否定整数值。但是,VS 告诉我,我没有足够的运算符参数。此外,我无法访问两个运算符中的成员变量,并且未定义独立整数。
Integer& operator-()
{
Integer temp;
temp.integer = -integer;;
return temp;
}
Integer& operator+(Integer& i)
{
Integer temp;
temp.integer = integer + i.integer;
return temp;
}
【问题讨论】:
-
你需要告诉编译器你希望操作符属于哪个类。通过为函数的实现添加一个范围
Integer::operator-()来做到这一点
标签: c++ class operator-overloading member-variables