C++關(guān)于構(gòu)造函數(shù)可向父類或者本類傳參的講解
前面我們學(xué)習(xí)了C++使用初始化列表的方式來初始化字段的方法:
http://chabaoo.cn/article/153032.htm
這一節(jié)的原理和前面的差不多。
在C++的構(gòu)造函數(shù)中,子類繼承父類,那么,在創(chuàng)建一個子類成員時,可以同時向父類或者子類的構(gòu)造函數(shù)進行傳參,實現(xiàn)方法如下:
寫一個例子:mul_argc.c
#include <iostream> #include <cstring> using namespace std ; //英雄聯(lián)盟類 class Hero { private : int blood ; string name ; public : Hero(int blood = 100, string name = "man wang") { this->blood = blood ; this->name = name ; } ~Hero() { if(this->blood < 0){ cout << "Hero blood error!\n" << endl ; return ; } cout << "Hero name is:" << this->name << endl ; cout << "Hero blood is :" << this->blood << endl ; } }; //德瑪類,繼承于英雄類 class Dema : public Hero { private : int blood ; string name ; public : Dema(int blood , string name); ~Dema(); }; //在實現(xiàn)子類的構(gòu)造函數(shù)時,可以同時向父類的構(gòu)造函數(shù)傳參 //例如這個例子的 : Hero(58,JS),相當(dāng)于向父類的構(gòu)造函數(shù)傳參 //當(dāng)然,子類也可以給本類的的成員傳參 Dema::Dema(int blood , string name) : Hero(89 , "JS") , blood(58) , name("dema") { this->name = name ; this->blood = blood ; } Dema::~Dema() { if(this->name != "dema"){ cout << "This Hero are no dema!" << endl; return ; } if(this->blood < 0){ cout << "Dema blood error!\n" << endl ; return ; } cout << "Dmea name is:" << this->name << endl ; cout << "Dema blood is :" << this->blood << endl ; } int main(int argc , char **argv) { Dema player1(79,"dema"); return 0 ; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
C++?用紅黑樹模擬實現(xiàn)set、map的示例代碼
set、map的底層結(jié)構(gòu)是紅黑樹,它們的函數(shù)通過調(diào)用紅黑樹的接口來實現(xiàn),本文主要介紹了C++?用紅黑樹模擬實現(xiàn)set、map,具有一定的參考價值,感興趣的可以了解一下2024-03-03C++?Boost?MultiArray簡化使用多維數(shù)組庫
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴展的一些C++程序庫的總稱2022-11-11