本節書摘來自異步社群出版社《c++面向對象高效程式設計(第2版)》一書中的第3章,第3.1節,作者: 【美】kayshav dattatri,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
c++面向對象高效程式設計(第2版)
在c++中,抽象的基本單元是類。類隻不過是功能增強的c結構。本章将介紹c++如何支援資料抽象。
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。
在c++中,類和結構幾乎相同(除了一些細微差别,稍後介紹)。對類概念的讨論,同樣可适用于結構。
類的一些重要特性如下:
(1)類的通路區域有private、protected和public區域。
(2)類包含靜态和非靜态成員函數的原型(或簽名)以及資料成員的聲明。
(3)可以在類中包含另一個類(嵌套類)的聲明。
(4)可以在類中包含靜态資料成員和靜态成員函數的聲明(稍後介紹)。
如下所示為整數棧tingstack類的示例:
/* tintstack 是一個儲存整數的棧,它提供普通的push和pop操作。
雖然實作通用棧也非常容易(将在第9章中介紹),但是,為了讨論友善,我們使用整數棧。
以下代碼在intstack.h檔案中
/
class tintstack {
public:
// 成員函數
// 預設構造函數
tintstack(unsigned int stacksize = default_size);
tintstack(const tintstack& that); // 複制構造函數
// 指派操作
tintstack& operator=(const tinstack& assign);
~tintstack(); // 析構函數
void push(int thisvalue);
int pop();
unsigned int howmany() const;
// 更多成員函數
private:
// 資料成員
int* _sp;
unsigned _count;
unsigned _size;
};