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