#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 關注
- 760 瀏覽
添加回答
舉報
0/150
提交
取消