欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解C++封閉類的定義與使用

 更新時(shí)間:2022年11月02日 08:47:41   作者:龍星塵  
一個(gè)類的成員變量如果是另一個(gè)類的對(duì)象,就稱之為“成員對(duì)象”。包含成員對(duì)象的類叫封閉類(enclosed?class)。本文主要和大家聊聊C++封閉類的使用,需要的可以參考一下

封閉類

今天,我學(xué)習(xí)的是C++對(duì)象的一種操作.就是成員對(duì)象和封閉類.

那么封閉類是什么呢?和普通類用什么不同嗎?

封閉類就是有成員對(duì)象的類,那么成員對(duì)象是什么呢?我們一起來看一下吧

封閉類分為了輪胎類,引擎類,汽車類......我們可以將封閉類可以看作一個(gè)完整的汽車.

那么汽車?yán)锩嬗媚男┏蓡T呢,肯定有輪胎對(duì)吧,還有引擎,窗戶等等,那么輪胎有什么成員呢?有外層的橡膠,里面的金屬,對(duì)吧.輪胎寫成一個(gè)對(duì)象后,這個(gè)輪胎呢是汽車的一部分,而汽車也是一個(gè)對(duì)象,所以輪胎就是一個(gè)成員對(duì)象,而汽車呢因?yàn)榘似渌麑?duì)象,就叫做封閉類.

接下來,就可以開始寫程序了.

我們先寫輪胎,輪胎的材質(zhì)橡膠也可以寫成一個(gè)對(duì)象,包含著橡膠的大小,尺存什么的.而我要給大家做一個(gè)最簡(jiǎn)單的例子,就不用寫橡膠,金屬什么的了!這個(gè)輪胎是一個(gè)圓對(duì)吧,圓肯定有半徑吧,寬度/長(zhǎng)度吧,還有高啊,都可以寫進(jìn)去:

輪胎類

#include<bits/stdc++.h>
using namespace std;
class CTyre{ //輪胎類 
  private:
    int redius; //半徑
    int width;  //寬度或長(zhǎng)度
    int height; //高度
  public:
  CTyre(){ //構(gòu)造函數(shù) 
    redius=0,width=0,height=0; //賦值 
  } 
  ~CTyre(){ //析構(gòu)函數(shù) 
    printf("%d %d %d\n",redius,width,height); //類銷毀時(shí)輸出這3個(gè)成員的值 
  }
  /*
  ......  圓的體積 
  ......  圓的表面積 
  ......  等等 
  */
};

這個(gè)就是我寫的其中一個(gè)類,輪胎類,里面標(biāo)注著輪胎的半徑,長(zhǎng),高,還有構(gòu)造函數(shù)和祈構(gòu)函數(shù),中間省略的部分可以寫這種東西,這個(gè)輪胎的作用等等.

寫完了輪胎,還有什么呢?自然就是引擎了,引擎類里面需要有什么成員呢?首先我們要知道這個(gè)引擎是否是好的,還要知道這個(gè)引擎是不是開啟的,還可以知道這個(gè)引擎里面的引擎?zhèn)€數(shù),最后還可以看一下這個(gè)引擎的生產(chǎn)公司.

引擎類

#include<bits/stdc++.h>
using namespace std;
class CEngine{ //引擎類 
  private:
    bool use; //是否正在使用
    bool good_bad; //這個(gè)引擎是好的還是壞的
    int parts; //零件的個(gè)數(shù)
    string production; //生產(chǎn)公司的名稱
  public:
  CEngine(){ //構(gòu)造函數(shù)初始化 
    use=false;
    good_bad=true;
    parts=10000; //一般汽車引擎就是這么多零件
    production="豐田汽車"; //目前世界上最大汽車公司 
  } 
  ~CEngine(){ //析構(gòu)函數(shù) 
    cout<<use<<" "<<good_bad<<" "<<parts<<" "<<production<<endl;
  }
  /*
  ......  這個(gè)引擎是否是好的 
  ......  這個(gè)引擎現(xiàn)在在使用嗎? 
  ......  等等 
  */
};

除了引擎和輪胎,汽車肯定還要很多其他的重要部分,由于過于復(fù)雜,今天我們就只寫這兩個(gè)成員類.

有了引擎和輪胎,就可以有汽車了,汽車?yán)锩嬗惺裁闯蓡T呢?首先,就是這個(gè)汽車的價(jià)格,然后才是是引擎和輪胎等各種成員類,注意一下,如果是一個(gè)成員類的話,構(gòu)造函數(shù)用參數(shù),在寫成員類的時(shí)候是不需要加參數(shù)的:

汽車類

#include<bits/stdc++.h>
using namespace std;
class CCar{ //汽車類 
  private:
    int price; //汽車的價(jià)格 
    CTyre tyre; //汽車的輪胎 
    CEngine engine; //汽車的引擎
  public:
  CCar(int p){//構(gòu)造函數(shù) 
    price=p; //賦值 
  } 
  ~CCar(){ //析構(gòu)函數(shù) 
    printf("%d\n",price); //只用輸出這個(gè)價(jià)格 
  }                         //因?yàn)檩喬ズ鸵骖愊龊髸?huì)自動(dòng)使用祈構(gòu)函數(shù)      
};

這個(gè)CCar就是我們的封閉類了,里面有著引擎和輪胎兩個(gè)成員對(duì)象.

現(xiàn)在我講一下寫封閉類的注意事項(xiàng):

1.任何生成封閉類的語(yǔ)句,都要讓編譯器明白,對(duì)象中的成員對(duì)象,是如何進(jìn)行初始化的.

2.封閉類對(duì)象生成時(shí),先執(zhí)行所有對(duì)象成員的構(gòu)造函數(shù),然后才執(zhí)行封閉類自己的構(gòu)造函數(shù).

3.對(duì)象成員的構(gòu)造函數(shù)調(diào)用次序和對(duì)象成員在類中的說明次序一致.

4.和構(gòu)造函數(shù)正好相反,當(dāng)封閉類對(duì)象消亡時(shí),先執(zhí)行封閉類的析構(gòu)函數(shù),然后再執(zhí)行成員對(duì)象的析構(gòu)函數(shù).調(diào)用次序也和構(gòu)造函數(shù)的調(diào)用次序相反.

總代碼

#include<bits/stdc++.h>
using namespace std;
class CEngine{ //引擎類 
    private:
        bool use; //是否正在使用
        bool good_bad; //這個(gè)引擎是好的還是壞的
        int parts; //零件的個(gè)數(shù)
        string production; //生產(chǎn)公司的名稱
    public:
    CEngine(){ //構(gòu)造函數(shù)初始化 
        use=false;
        good_bad=true;
        parts=10000; //一般汽車引擎就是這么多零件
        production="豐田汽車"; //目前世界上最大汽車公司 
    } 
    ~CEngine(){ //析構(gòu)函數(shù) 
        cout<<use<<" "<<good_bad<<" "<<parts<<" "<<production<<endl;
    }
    /*
    ......  這個(gè)引擎是否是好的 
    ......  這個(gè)引擎現(xiàn)在在使用嗎? 
    ......  等等 
    */
};
class CTyre{ //輪胎類 
    private:
        int redius; //半徑
        int width;  //寬度或長(zhǎng)度
        int height; //高度
    public:
    CTyre(){ //構(gòu)造函數(shù) 
        redius=0,width=0,height=0; //賦值 
    } 
    ~CTyre(){ //析構(gòu)函數(shù) 
        printf("%d %d %d\n",redius,width,height); //類銷毀時(shí)輸出這3個(gè)成員的值 
    }
    /*
    ......  圓的體積 
    ......  圓的表面積 
    ......  等等 
    */
};
class CCar{ //汽車類 
    private:
        int price; //汽車的價(jià)格 
        CTyre tyre; //汽車的輪胎 
        CEngine engine; //汽車的引擎
    public:
    CCar(int p){//構(gòu)造函數(shù) 
        price=p; //賦值 
    } 
    ~CCar(){ //析構(gòu)函數(shù) 
        printf("%d\n",price); //只用輸出這個(gè)價(jià)格 
    }                         //因?yàn)檩喬ズ鸵骖愊龊髸?huì)自動(dòng)使用祈構(gòu)函數(shù)      
};
int main(){
    CCar a(10000);
} 

程序輸出:

到此這篇關(guān)于深入了解C++封閉類的定義與使用的文章就介紹到這了,更多相關(guān)C++封閉類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論