天天看點

c++學習筆記(十):C++類和對象

C++程式設計的主要目的,是面向對象添加到C的程式設計語言和C++中的類是核心功能,支援面向對象的程式設計和通常被稱為使用者定義的類型。

類是用來指定對象的形式,它結合了資料的表示和操縱資料成一個整齊的包裝方法。一個類中的資料和函數的被稱為類的成員。

C++類定義:

當定義一個類時,定義一個資料類型的藍本。這實際上并不定義任何資料,但它确實定義什麼類的名字的意思,即,什麼類的對象将包括哪些操作可以對這樣的對象來執行。

類定義以關鍵字class後跟類名稱以及類體,由一對大括号封閉。類定義必須由分号或聲明的清單執行。例如,我們用關鍵詞class如下定義Box的資料類型:

class Box
{
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};      

關鍵字public 決定它後面的類成員的通路屬性。公共成員可以從類外部的類對象範圍内的任何地方通路。還可以指定一個類的成員私人(private)或保護(protected),我們将在後面的小節中讨論。

定義C++對象:

類提供對象的圖紙,是以基本上一個對象是從一個類建立的。我們聲明一個類的對象具有排序完全相同的聲明我們聲明基本類型的變量。下面的語句聲明Box類的兩個對象:

Box Box1;          // Declare Box1 of type Box
Box Box2;          // Declare Box2 of type Box      

兩個對象Box1和Box2都有自己的資料成員的副本。

通路資料成員:

類對象的公共資料成員可以使用直接成員通路運算符(.)來通路。讓我們試試下面的例子:

#include <iostream>

using namespace std;

class Box
{
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

int main( )
{
   Box Box1;        // Declare Box1 of type Box
   Box Box2;        // Declare Box2 of type Box
   double volume = 0.0;     // Store the volume of a box here
 
   // box 1 specification
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 specification
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;
   // volume of box 1
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Volume of Box1 : " << volume <<endl;

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

讓我們編譯和運作上面的程式,這将産生以下結果:

Volume of Box1 : 210
Volume of Box2 : 1560
      

要注意的是私有(private)和受保護(protected)成員不能直接使用直接成員通路運算符(.)通路。We will learn how private and protected members can be accessed.

c++

繼續閱讀