首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有调用“currency::currency()”的匹配函数

没有调用“currency::currency()”的匹配函数
EN

Stack Overflow用户
提问于 2018-10-02 09:55:54
回答 1查看 53关注 0票数 0

我不知道这个错误意味着什么:

当我编译它时,它给了我错误::意味着范围解析,但我仍然不明白这些Classname::classname()意味着什么。

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 10:11:14

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

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

代码语言:javascript
复制
currency() = default;

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

详细信息可以找到这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52606023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档