1.2.01_C++?類 & 對象

C++ 在 C 語言的基礎(chǔ)上增加了面向?qū)ο缶幊?/strong>,C++ 支持面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming-OOP)。</br>

類是 C++ 的核心特性,通常被稱為用戶定義的類型。</br>

類用于指定對象的形式,它包含了數(shù)據(jù)表示法和用于處理數(shù)據(jù)的方法。</br>

類中的數(shù)據(jù)和方法稱為類的成員。函數(shù)在一個類被稱為類的成員

C++ 類定義

定義一個類,本質(zhì)上是定義一個數(shù)據(jù)類型的藍(lán)圖。這實(shí)際上并沒有定義任何數(shù)據(jù),但它定義了類的名稱意味著什么,也就是說,它定義了類的對象包括了什么,以及可以在這個對象上執(zhí)行哪些操作。</br>

類定義是以關(guān)鍵字 class 開頭,后跟類的名稱。類的主體是包含在一對花括號中。類定義后必須跟著一個分號或一個聲明列表。例如,我們使用關(guān)鍵字 class 定義 Box 數(shù)據(jù)類型,如下所示:

class Box
{ 
  public: double length; // 盒子的長度 
  double breadth; // 盒子的寬度 
  double height; // 盒子的高度
};

關(guān)鍵字 public 確定了類成員的訪問屬性。在類對象作用域內(nèi),公共成員在類的外部是可訪問的。您也可以指定類的成員為privateprotected,這個我們稍后會進(jìn)行講解。

定義 C++ 對象

類提供了對象的藍(lán)圖,所以基本上,對象是根據(jù)類來創(chuàng)建的。聲明類的對象,就像聲明基本類型的變量一樣。下面的語句聲明了類 Box 的兩個對象:
Box Box1; // 聲明 Box1,類型為 Box Box Box2; // 聲明 Box2,類型為 Box

對象 Box1 和 Box2 都有它們各自的數(shù)據(jù)成員。

訪問數(shù)據(jù)成員

類的對象的公共數(shù)據(jù)成員可以使用直接**成員訪問運(yùn)算符 (.) **來訪問。為了更好地理解這些概念,讓我們嘗試一下下面的實(shí)例:
實(shí)例

#include <iostream>
using namespace std;

class Box
{
   public:
      double length;   // 長度
      double breadth;  // 寬度
      double height;   // 高度
};

int main( )
{
   Box Box1;        // 聲明 Box1,類型為 Box
   Box Box2;        // 聲明 Box2,類型為 Box
   double volume = 0.0;     // 用于存儲體積

   // box 1 詳述
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 詳述
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;

   // box 1 的體積
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Box1 的體積:" << volume <<endl;

   // box 2 的體積
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Box2 的體積:" << volume <<endl;
   return 0;
}

當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:

Box1 的體積:210
Box2 的體積:1560

需要注意的是,私有的成員和受保護(hù)的成員不能使用直接成員訪問運(yùn)算符 (.) 來直接訪問。我們將在后續(xù)的教程中學(xué)習(xí)如何訪問私有成員和受保護(hù)的成員。

類 & 對象詳解

到目前為止,我們已經(jīng)對 C++ 的類和對象有了基本的了解。下面的列表中還列出了其他一些 C++ 類和對象相關(guān)的概念,可以點(diǎn)擊相應(yīng)的鏈接進(jìn)行學(xué)習(xí)。

  • 類成員函數(shù)
    類的成員函數(shù)是指那些把定義和原型寫在類定義內(nèi)部的函數(shù),就像類定義中的其他變量一樣。

  • 類訪問修飾符
    類成員可以被定義為 public、private 或 protected。默認(rèn)情況下是定義為 private。

  • 構(gòu)造函數(shù) & 析構(gòu)函數(shù)
    類的構(gòu)造函數(shù)是一種特殊的函數(shù),在創(chuàng)建一個新的對象時調(diào)用。類的析構(gòu)函數(shù)也是一種特殊的函數(shù),在刪除所創(chuàng)建的對象時調(diào)用。

  • C++ 拷貝構(gòu)造函數(shù)
    拷貝構(gòu)造函數(shù),是一種特殊的構(gòu)造函數(shù),它在創(chuàng)建對象時,是使用同一類中之前創(chuàng)建的對象來初始化新創(chuàng)建的對象。

  • C++ 友元函數(shù)
    友元函數(shù)可以訪問類的 private 和 protected 成員。

  • C++ 內(nèi)聯(lián)函數(shù)
    通過內(nèi)聯(lián)函數(shù),編譯器試圖在調(diào)用函數(shù)的地方擴(kuò)展函數(shù)體中的代碼。

  • C++ 中的 this 指針
    每個對象都有一個特殊的指針 this,它指向?qū)ο蟊旧怼?/p>

  • C++ 中指向類的指針
    指向類的指針方式如同指向結(jié)構(gòu)的指針。實(shí)際上,類可以看成是一個帶有函數(shù)的結(jié)構(gòu)。

  • C++ 類的靜態(tài)成員
    類的數(shù)據(jù)成員和函數(shù)成員都可以被聲明為靜態(tài)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,679評論 1 51
  • 第一天 一.內(nèi)聯(lián)函數(shù)(inline) 函數(shù)調(diào)用的時候需要建立棧內(nèi)存環(huán)境,進(jìn)行參數(shù)傳遞,并產(chǎn)生程序執(zhí)行轉(zhuǎn)移,這些工作...
    陳果123閱讀 1,223評論 0 1
  • C++文件 例:從文件income. in中讀入收入直到文件結(jié)束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 3,103評論 0 3
  • 12月24日做了彩超檢查,寶寶還是沒有胎心胎芽,醫(yī)生又讓觀察三天再去檢查,沒想到26日晚上大出血,流了好多血塊,2...
    朵朵去哪兒閱讀 256評論 0 0
  • 第一大銷售話術(shù):安全感 第二大銷售話術(shù):價值感 第三大銷售話術(shù):自我滿足感 銷售話術(shù)的任務(wù)實(shí)際上是推銷一種象征性滿...
    胖子叔閱讀 1,355評論 0 8

友情鏈接更多精彩內(nèi)容