久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > C++關于面向對象構造方法總結

C++關于面(mian)向對象構造方法總結 時間:2018-09-29      來(lai)源:未知

這里總結下C++中關于子類(lei)繼承(cheng)父類(lei)后構(gou)造方法的調用問(wen)題

1.首(shou)先看下這(zhe)種情況

//父類

class parent

{

public:

    parent(int b){cout<<"parent has parame b = "<<b<<endl;}

};

//子類

class child : public parent

{

public:

    child(int a){cout<<"child has parame a = "<<a<<endl;}

};

//main函數(shu)

#include "child.h"

int main()

{

    child a(5);

}

父類(lei)和子類(lei)各有一個帶整(zheng)形(xing)形(xing)參的(de)構造方法,此時編譯程序,是有錯誤的(de),如下

F:\qt_program\cpp_test\child.h:-1: In constructor 'child::child(int)':

F:\qt_program\cpp_test\child.h:9: error: no matching function for call to 'parent::parent()'

     child(int a){cout<<"child has parame a = &quot;<<a<<endl;}

什(shen)么(me)意思呢?就是(shi)說在構造(zao)(zao)child類時候,調(diao)用了父(fu)類構造(zao)(zao)方法(fa)parent,但是(shi)這個構造(zao)(zao)方法(fa)必須(xu)不(bu)帶參數(shu),

而父類中是沒有這么(me)一個(ge)方法的,所以(yi)會產生這個(ge)錯(cuo)誤(wu)。

2.我們把父類改為如下形(xing)式,加入一個不(bu)帶形(xing)參的(de)構造方法

class parent

{

public:

    parent(){cout<<"parent no parame"<<endl;}

    parent(int b){cout<<"parent has parame b = "<<b<<endl;}

};

那么此時就編譯通(tong)過了,輸出信息為:

parent no parame

parent has parame b = 5

也就說在子類實例化(hua)過程中(zhong),首先默認調用了(le)父類無參構造函(han)數(shu),然后再調用子類構造函(han)數(shu)

3.那么(me)如果(guo)我們子類(lei)想調用父類(lei)的帶參構造函數怎么(me)辦(ban)呢?就需要對子類(lei)作如下(xia)修改:

class child : public parent

{

public:

    child(int a):parent(6)

    {cout<<"child has parame a = "<<a<<endl;}

};

這樣子(zi)類(lei)在(zai)(zai)構(gou)造(zao)時(shi)候,會默認(ren)先調(diao)用(yong)父類(lei)帶參構(gou)造(zao),然后在(zai)(zai)調(diao)用(yong)子(zi)類(lei)相應構(gou)造(zao)方法(fa)

上一篇:Hi3515 start.S文件分析

下一篇:淺析C#的多態性

熱點文章推薦
華清(qing)學(xue)員就業榜單
高薪(xin)學員(yuan)經驗分享
熱(re)點新聞推薦(jian)
前臺專線(xian):010-82525158 企(qi)業培訓洽談專線:010-82525379 院校(xiao)合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部