调用'currency::currency()'没有匹配函数

No matching function for call to 'currency::currency()'

本文关键字:currency 函数 调用      更新时间:2023-10-16

我不知道这个错误是什么意思:

当我编译它时,它会给我错误 :: 表示范围解析,但我仍然不明白这些Classname::classname()是什么意思。

#include <iostream>
using namespace std;
class currency
{
int rupee,paisa;
public:
currency(int r, int p)
{
rupee=r;
paisa=p;
}
void display()
{
cout<<"nCurrency = Rs. "<<rupee<<"."<<paisa;
}
friend currency AddCurrency(currency,currency);
};
currency AddCurrency(currency,currency);
int main()
{  
currency c1(5,50);
c1.display();
currency c2(94,49);
c2.display();
currency c3=AddCurrency(c1,c2);
c3.display();
getch();
return 0;
}
currency AddCurrency(currency a,currency b)
{
currency c;
c.rupee=a.rupee+b.rupee;
c.paisa=a.paisa+b.paisa;
return c;
}

问题是用户定义的构造函数currency::currency(int r, int p)禁止编译器合成默认构造函数。

如果您使用的是 C++11 或更高版本,则可以告诉编译器您确实希望合成默认构造函数:

currency() = default;

或者,您可以编写自己的默认构造函数。

完整的细节可以在这里找到。