为了账号安全,请及时绑定邮箱和手机立即绑定

error: no matching function for call to `aaa::aaa()为什么加了构造函数就会出错

error: no matching function for call to `aaa::aaa()为什么加了构造函数就会出错

C C++
不凡的蚂蚁 2017-02-08 10:50:42
#include<iostream>using namespace std;class aaa{ public: void zh(int num,double gra); aaa(int num,double gra):number(num),grade(gra){} private: int number; double grade;};void aaa::zh(int num,double gra){ char nam='a'; num=nam; gra=nam; cout<<nam<<num<<gra<<endl;}int main(){ aaa a1; a1.zh(001,90); return 0;}
查看完整描述

1 回答

已采纳
?
朕日理万机

TA贡献27条经验 获得超28个赞

只有你没有定义构造函数,编译器才会提供默认构造函数aaa()。

现在因为你自己定义了构造函数aaa(int num,double gra),所以不再会有默认构造函数了。现在唯一的构造函数需要提供一个int和一个double,所以运行到aaa a1就报错了,因为你没有传递任何参数,就会去找那个不用参数的构造函数,结果没找到。你可以改成aaa a1(1, 3.14);或者提供不需要参数的构造函数,或者让你现有的这个构造函数有默认参数。

查看完整回答
反对 回复 2017-02-08
  • 1 回答
  • 0 关注
  • 3399 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信