我不知道这个错误意味着什么:
当我编译它时,它给了我错误::意味着范围解析,但我仍然不明白这些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;
}发布于 2018-10-02 10:11:14
问题是用户定义的构造函数currency::currency(int r, int p)阻止编译器合成默认构造函数。
如果您正在使用C++11或更高版本,您可以告诉编译器您确实希望合成一个默认构造函数:
currency() = default;或者,您也可以编写自己的默认构造函数。
详细信息可以找到这里。
https://stackoverflow.com/questions/52606023
复制相似问题