哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 開發(fā)語言 >> 文章正文

C++類構(gòu)造函數(shù)學(xué)習(xí)

       大部分對象在使用之前沒有正確的初始化是C++出錯的主要領(lǐng)域
引入類的構(gòu)造函數(shù)是正確的初始化類的對象
       一般什么時候觸發(fā)并調(diào)用類的構(gòu)造函數(shù)呢?
答案是:當(dāng)我們用類來定義一個類變量的時候,
如:
class demo{.....}; 聲明并定義好完整的類
//當(dāng)我們用類去建立一個對象時,它首先調(diào)用類的構(gòu)造函數(shù)
demo d;                  //調(diào)用類的無參數(shù)的構(gòu)造函數(shù)
demo d1(參數(shù)1,..)     //按參數(shù)個數(shù)不同,調(diào)用類中不同的構(gòu)造函數(shù)  
2.定義
構(gòu)造函數(shù)名和類名完全一樣,可以根據(jù)不同的參數(shù)來實現(xiàn)重載不同的構(gòu)造函數(shù)
構(gòu)造函數(shù)是沒有任何返回值的,它默認(rèn)的是public,inline函數(shù)
2.1定義格式
構(gòu)造函數(shù)可以重載,可以是無參數(shù),有參數(shù),有默認(rèn)參數(shù))
聲明三個構(gòu)造函數(shù)
代碼如下
class item{
public:
 item(std::string& book="" ); //帶默認(rèn)形參的構(gòu)造函數(shù)
 item(std::string& ); //帶形參的構(gòu)造函數(shù)
 item(); //無形參的構(gòu)造函數(shù)
};
 
2.2構(gòu)造函數(shù)的兩種初始化成員變量的方法
如下面的類
class demo(){
public:
 //構(gòu)造函數(shù)在下面添加
private:
 int x;
 int y;
 std::string name;
};
構(gòu)造函數(shù)初始化成員有兩種方法
 
A.使用構(gòu)造函數(shù)的初始化列表進行初始化
格式:funname(參數(shù)列表):(初始化列表){}
初始化列表: 成員名1(形參名1),成員名2(形參名2),成員名n(形參名n)
代碼:
demo(int a=0,int b=0,std::string s=""):x(a),y(b),name(s){}
 
B.使用構(gòu)造函數(shù)的函數(shù)體進行初始化
格式:funname(參數(shù)列表){函數(shù)體內(nèi)賦值}
它和傳統(tǒng)的C函數(shù)差不多
代碼:
demo(int a=0,int b=0,std::string s=""){
x=a;
y=b;
name=s;
}  
3.基類與派生類
3.1在基類用構(gòu)造函數(shù)初始化類的成員
"默認(rèn)形參的方式+初始化列表"來初始化基類,而參數(shù)順序不是主要的
代碼如下:
class item_base(
public:
 //兩個構(gòu)造函數(shù)
 item_base():(isbn(""),price(0.0){}    
 item_base(std::string& book="",double s_price=0.0) //帶默認(rèn)形參
         :isbn(book),price(s_price){}             //初始化列表
......
private:
 std::string book;
 double price
 
);
 
3.2派生類
由于初始化順序是從基類到派生類的
基類的構(gòu)造函數(shù)負(fù)責(zé)初始化基類與派生類的構(gòu)造數(shù)負(fù)責(zé)初始化派生類,
在MFC中N層繼承類庫中,都是不同層中的類負(fù)責(zé)初始化自己本身和調(diào)用上一級構(gòu)造函數(shù)進行初始化
 
如何在派生類初始化從基類中繼承來的protected成員和基類的private成員呢?
答案是:
在派生類的構(gòu)造函數(shù)間接的調(diào)用基類構(gòu)造函數(shù)來實現(xiàn),派生類的初始化列表必須明確指出基類的初始化式
 
作者:未知 | 文章來源:未知 | 更新時間:2008-1-15 16:43:05

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    C++基礎(chǔ)知識:結(jié)構(gòu)體數(shù)據(jù)的指針變量
    如何實現(xiàn)C與C++程序的相互調(diào)用
    在C++中成員函數(shù)如何實現(xiàn)操作符重載?
    基礎(chǔ)學(xué)習(xí):C++非成員函數(shù)實現(xiàn)操作符重載
    基礎(chǔ)學(xué)習(xí):C++重載輸入輸出符
    基礎(chǔ)學(xué)習(xí):C++重載下標(biāo)結(jié)算符
    基礎(chǔ)學(xué)習(xí):C++中重載調(diào)用操作符
    基礎(chǔ)學(xué)習(xí):C++重載轉(zhuǎn)換操作符operator (type)
    C++類復(fù)制控制學(xué)習(xí)
    C++類析構(gòu)函數(shù)學(xué)習(xí)
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·搜集整理的asp.net的驗證方
    ·各種FOR循環(huán)結(jié)構(gòu)的整理
    ·軟件項目開發(fā)中應(yīng)該考慮那
    ·搜集整理的javascript sel
    ·軟件開發(fā)中項目經(jīng)理有那些
    ·學(xué)習(xí)如何在Lambda表達式進
    ·C++基礎(chǔ)知識:結(jié)構(gòu)體數(shù)據(jù)的
    ·C#實現(xiàn)短信發(fā)送程序的例子
    ·sun最近修補了一部分java的
    ·rss定制的另外一種實現(xiàn)方式
    ·delphi實現(xiàn)利用arp欺騙來實
    ·基礎(chǔ)學(xué)習(xí):基于WF的流程框
    ·網(wǎng)絡(luò)編程中怎樣得知一次數(shù)
    ·如何逆序輸出單鏈表?
    ·軟件開發(fā)過程中的性能設(shè)計
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000