600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c++继承 子类构造函数出现报错no matching function for call to ‘xxx::xxx()

c++继承 子类构造函数出现报错no matching function for call to ‘xxx::xxx()

时间:2021-10-04 09:36:47

相关推荐

c++继承 子类构造函数出现报错no matching function for call to ‘xxx::xxx()

原因:派生类无法直接访问基类的私有成员,而必须通过基类的方法进行访问,说直白点就是要使用基类的构造函数;例如:

错误写法:

first(int c, string ids = "first") {num = c; id = ids;};//错误写法

正确写法:

first(int c, string ids = "first"): temp(c, ids) {;};//正确写法

那为什么报的错是函数类型不匹配呢?

其实如果没有显示调用基类构造函数,程序将使用默认的基类构造函数,(该构造函数不含任何参数)即第一句代码与以下代码等效:

first(int c, string ids = "first"):temp() {num = c; id = ids;}

关键在于如果基类中根本没有不含任何参数的构造函数的话,就会出现类型不匹配的报错!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。