亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++構造函數問題

C++構造函數問題

C++
一只名叫tom的貓 2018-07-29 13:13:49
#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需要調用默認構造參數,修改方法添加默認構造:

1Base() : k(0) {}



 2.如果不想給Base添加默認構造,你應該改寫Big的構造函數,使用初始化成員列表

1234  Big(int n):b(Base(n)),v(n)    {    //b必須用初始化成員列表構造    }


查看完整回答
反對 回復 2018-08-04
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

Base類的默認構造函數找不到。

原因是你寫了帶1個參數的構造函數后,C++將不再給你提供默認的構造函數。所以你要手動寫上。

1Base() : k(0) {}


查看完整回答
反對 回復 2018-08-04
  • 2 回答
  • 0 關注
  • 760 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號