C++ 編程的主要目的是將面向?qū)ο蟮乃枷胍M到 C 編程語言中,類是 C++ 的核心特征,用來支持面向?qū)ο缶幊蹋愅ǔ1环Q為用戶定義的類型。
類是用于指定一個對象的形式,它將數(shù)據(jù)表示和用于處理數(shù)據(jù)的方法組合成一個整潔的包。一個類的數(shù)據(jù)和函數(shù)統(tǒng)稱為類的成員。
當你定義了一個類,你就定義一個數(shù)據(jù)類型的藍圖。這實際上沒有定義任何數(shù)據(jù),它只是定義了類名是什么意思,也就是意味著,一個類的對象包含什么,在這樣一個對象上可以執(zhí)行哪些操作。
定義一個類,以關(guān)鍵字 class 開始,緊隨其后的是類名,和類的主體,類的主體由一對大括號封閉。一個類定義必須以分號或者一系類聲明結(jié)尾。例如,我們通過使用關(guān)鍵字 class 定義 Box 數(shù)據(jù)類型,如下所示:
class Box
{
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};
關(guān)鍵字 public 決定了緊隨其后的類的成員的訪問屬性。一個公共成員可以從類外處于任何一個類對象范圍內(nèi)的地方訪問。類對象的范圍內(nèi)的任何地方。您還可以指定一個類的成員為 private 或 public,我們將在一個小節(jié)中討論它們。
一個類為對象提供了藍圖,對象是由類創(chuàng)建而來。我們聲明一個類的對象的方式,用聲明其他基本類型變量的方式完全相同。以下語句聲明 Box 類的兩個對象:
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Box1 和 Box2 對象都分別持有其各自的數(shù)據(jù)副本。
類的對象的公共數(shù)據(jù)成員可以使用直接成員訪問操作符:(.)
訪問。試著執(zhí)行下面的例子,能更清晰的說明這個問題:
#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;
}
編譯和執(zhí)行上面的代碼,執(zhí)行結(jié)果如下:
Volume of Box1 : 210
Volume of Box2 : 1560
需要特別加以注意的是,不能使用直接成員訪問操作符:(.)
直接訪問私有成員和保護成員。我們將在以后學習如何訪問私有成員和保護成員。
到目前為止,我們已經(jīng)對 C++ 類和對象有了最基本的了解。還還有更多的與 C++ 類和對象相關(guān)的有趣的概念,我們將在下面列出的各個小節(jié)中討論它們:
內(nèi)容 | 描述 |
---|---|
類成員函數(shù) | 類的成員函數(shù)是一個函數(shù),像其他變量一樣,成員函數(shù)在類中有其定義和原型。 |
類的訪問修飾符 | 一個類成員可以被定義為公共,私有或保護。默認情況下成員將被假定為私有。 |
構(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)建一個對象并用之前已經(jīng)創(chuàng)建好的一個同類的對象對其進行初始化。 |
C++ 友函數(shù) | 一個友(friend)函數(shù)允許完全訪問類的私有成員和保護成員。 |
C++ 內(nèi)聯(lián)函數(shù) | 使用一個內(nèi)聯(lián)函數(shù),編譯器試圖用函數(shù)體中的代碼替換調(diào)用函數(shù)的地方的函數(shù)名,從而達到消除函數(shù)調(diào)用時的時間開銷的目的。 |
C++ 中的 this 指針 | 每個對象都有一個特殊的指針 this,它指向?qū)ο蟊旧怼?/td> |
指向 C++ 類的指針 | 類指針和一個指向結(jié)構(gòu)的指針是以完全相同的方式實現(xiàn)的。事實上一個類就是一個在其中包含了函數(shù)的結(jié)構(gòu)體。 |
類的靜態(tài)成員 | 類的數(shù)據(jù)成員和函數(shù)成員都可以被聲明為靜態(tài)的。 |
更多建議: