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

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

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

封閉類

今天,我學習的是C++對象的一種操作.就是成員對象和封閉類.

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

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

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

那么汽車里面用哪些成員呢,肯定有輪胎對吧,還有引擎,窗戶等等,那么輪胎有什么成員呢?有外層的橡膠,里面的金屬,對吧.輪胎寫成一個對象后,這個輪胎呢是汽車的一部分,而汽車也是一個對象,所以輪胎就是一個成員對象,而汽車呢因為包含了其他對象,就叫做封閉類.

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

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

輪胎類

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

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

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

引擎類

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

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

有了引擎和輪胎,就可以有汽車了,汽車里面有什么成員呢?首先,就是這個汽車的價格,然后才是是引擎和輪胎等各種成員類,注意一下,如果是一個成員類的話,構造函數(shù)用參數(shù),在寫成員類的時候是不需要加參數(shù)的:

汽車類

#include<bits/stdc++.h>
using namespace std;
class CCar{ //汽車類 
  private:
    int price; //汽車的價格 
    CTyre tyre; //汽車的輪胎 
    CEngine engine; //汽車的引擎
  public:
  CCar(int p){//構造函數(shù) 
    price=p; //賦值 
  } 
  ~CCar(){ //析構函數(shù) 
    printf("%d\n",price); //只用輸出這個價格 
  }                         //因為輪胎和引擎類消亡后會自動使用祈構函數(shù)      
};

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

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

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

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

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

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

總代碼

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

程序輸出:

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

相關文章

  • C/C++并查集的查詢與合并實現(xiàn)原理

    C/C++并查集的查詢與合并實現(xiàn)原理

    這篇文章主要介紹了C/C++并查集的查詢與合并,并查集是一種用來管理元素分組情況的數(shù)據(jù)結構。并查集可以高效地進行如下操作
    2023-02-02
  • C++初學者之根據(jù)輸入的任何一個正整數(shù),輸出可能被表示的連續(xù)正整數(shù)

    C++初學者之根據(jù)輸入的任何一個正整數(shù),輸出可能被表示的連續(xù)正整數(shù)

    這篇文章主要介紹了C++初學者之根據(jù)輸入的任何一個正整數(shù),輸出可能被表示的連續(xù)正整數(shù)的相關資料,需要的朋友可以參考下
    2016-03-03
  • C語言使用posix正則表達式庫的實現(xiàn)

    C語言使用posix正則表達式庫的實現(xiàn)

    在C語言中,你可以使用 POSIX 正則表達式庫(regex.h)來進行正則表達式的模式匹配,本文主要介紹了C語言使用posix正則表達式庫的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • C++深入分析內(nèi)聯(lián)函數(shù)的使用

    C++深入分析內(nèi)聯(lián)函數(shù)的使用

    為了消除函數(shù)調(diào)用的時空開銷,C++ 提供一種提高效率的方法,即在編譯時將函數(shù)調(diào)用處用函數(shù)體替換,類似于C語言中的宏展開。這種在函數(shù)調(diào)用處直接嵌入函數(shù)體的函數(shù)稱為內(nèi)聯(lián)函數(shù)(Inline Function),又稱內(nèi)嵌函數(shù)或者內(nèi)置函數(shù)
    2022-04-04
  • C++inline函數(shù)的特性你了解嗎

    C++inline函數(shù)的特性你了解嗎

    這篇文章主要為大家詳細介紹了C++的inline函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++實現(xiàn)動態(tài)規(guī)劃過程詳解

    C++實現(xiàn)動態(tài)規(guī)劃過程詳解

    動態(tài)規(guī)劃是解決一類最優(yōu)問題的常用方法,它是解決最優(yōu)化問題的一種途徑,在本文中,我們將討論如何使用C++實現(xiàn)動態(tài)規(guī)劃算法,并提供一些示例來幫助您更好地理解該算法
    2023-05-05
  • C++歸并排序算法詳解

    C++歸并排序算法詳解

    大家好,本篇文章主要講的是C++歸并排序算法詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語言數(shù)據(jù)結構哈希表詳解

    C語言數(shù)據(jù)結構哈希表詳解

    哈希表是一種根據(jù)關鍵碼去尋找值的數(shù)據(jù)映射結構,該結構通過把關鍵碼映射的位置去尋找存放值的地方,說起來可能感覺有點復雜,我想我舉個例子你就會明白了,最典型的的例子就是字典
    2022-02-02
  • OpenCV使用稀疏光流實現(xiàn)視頻對象跟蹤的方法詳解

    OpenCV使用稀疏光流實現(xiàn)視頻對象跟蹤的方法詳解

    這篇文章主要為大家詳細介紹了OpenCV如何使用稀疏光流實現(xiàn)視頻對象跟蹤功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關系說明

    Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關系說明

    這篇文章主要介紹了Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關系說明,需要的朋友可以參考下
    2020-03-03

最新評論