mooc课程精选,成品人片观看入口众乐乐,久久久久人妻一区精品性色av,苍兰诀大结局是什么,白丝美女被狂躁免费视频网站

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

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

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

1.首先看下這種情況

//父類

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函數

#include "child.h"

int main()

{

    child a(5);

}

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

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 = "<<a<<endl;}

什么意思呢?就是說在構造child類時候,調用了父類構造方法parent,但是這個構造方法必須不帶參數,

而父類中是沒有這么一個方法的,所以會產生這個錯誤。

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

class parent

{

public:

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

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

};

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

parent no parame

parent has parame b = 5

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

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

class child : public parent

{

public:

    child(int a):parent(6)

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

};

這樣子類在構造時候,會默認先調用父類帶參構造,然后在調用子類相應構造方法

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

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

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

回到頂部