#include <iostream>using namespace std;class Base {public:int k;Base(int n):k(n) { }};class Big {public:int v; Base b;Big(int n){b=Base(n);v=n;}};int main() {Big a1(5);return 0;}为什么提示no matching function for call to ‘Base::Base'
2 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
Base没有默认构造函数
1.如果按照现在Big构造过程,Base需要调用默认构造参数,修改方法添加默认构造:
1 | Base() : k(0) {} |
2.如果不想给Base添加默认构造,你应该改写Big的构造函数,使用初始化成员列表
1234 | Big( int n):b(Base(n)),v(n) { //b必须用初始化成员列表构造 } |
- 2 回答
- 0 关注
- 717 浏览
添加回答
举报
0/150
提交
取消