我们开始涵盖对象和类。我有三个文件:bigNumberTest.cpp,bigNumber.cpp和bigNumber.h。
我的错误在我的主要内容中说“没有可行的重载'='”:
bigNumberTest.cpp(provided by instructor)
int main(){
//code
sum = num1.addBig(num2);
//code
}
我在bigNumber.cpp文件中使用以下函数定义函数时出现第二个错误:
num[i] = num[i] + num2[i];
错误在于:“类型'bigNumber'不提供下标运算符。”
bigNumber.cpp
void bigNumber::addBig(bigNumber num2){
//sums the two arrays
for (int i = 0; i < MAX_DIGITS; i++){
num[i] = num[i] + num2[i];
}
}
整体代码尚未完全完成,但我想解决这些问题。我提供了我认为只是必要代码的内容,但如果您需要更多信息,请告诉我。我还没有完全理解对象和类。
bigNumber.h file:
class bigNumber{
private:
const int MAX_DIGITS = 100;
int num[100];
public:
void readBig();
void addBig(bigNumber);
void printBig();
};
答案 0 :(得分:-1)
在主程序中,操作数的类型为bigNumber
。编译器不知道如何对它们执行'='操作。你必须自己写。重载支持您的数据类型的'='符号。
它应该是这样的:
void bigNumber::operator=(bigNumber rhs)
{
for(int i=0 ; i<MAX_DIGITS ; i++)
{
this->num[i] = rhs.num[i];
}
}
对于第二个错误,num2
只是一个变量。 num2
对象中包含变量num
。
因此,实际代码必须是:
bigNumber.cpp
void bigNumber::addBig(bigNumber num2){
//sums the two arrays
for (int i = 0; i < MAX_DIGITS; i++){
this->num[i] = this->num[i] + num2.num[i];
}
}
尝试详细了解this
运算符。