问题描述
- 另一个c++问题(没有与这些操作数匹配的运算符)
-
代码如下,在类外定义了两个函数,写第二个函数的时候给somme赋值时提示没有与这些操作数匹配的运算符,请问各位大神是怎么回事儿?
BigInt BigInt::puissanceBigInt(int n)
{
long long int puis = 1;
for(int i=0;i<n;i++)
{
puis *= n;
}
return puis;
}
BigInt BigInt::serieBigInt(int n)
{
long long int somme = 0;
for(int i=0;i<n;i++)
{
somme += puissanceBigInt(i+1);
}
return somme;
}
解决方案
somme += puissanceBigInt(i+1);
你没有运算符重载,怎么能让long long int和BigInt相加呢。
BigInt BigInt::puissanceBigInt(int n)
->
long long int BigInt::puissanceBigInt(int n)
看看
你用的什么编译器。不是所有编译器都支持long long int
解决方案二:
可以试试定义一个 long long int operator+=(long long int, BigInt)
解决方案三:
你也可以试试将函数的返回值类型修改一下,如:
BigInt BigInt::serieBigInt(int n)
修改为:
long long int BigInt::serieBigInt(int n)
时间: 2024-11-03 07:08:27