c++ 類(lèi) 和 對(duì)象
c++ 在 c 語(yǔ)言的基礎(chǔ)上增加了面向?qū)ο缶幊?,c++ 支持面向?qū)ο蟪绦蛟O(shè)計(jì)。類(lèi)是 c++ 的核心特性,通常被稱為用戶定義的類(lèi)型。
類(lèi)用于指定對(duì)象的形式,它包含了數(shù)據(jù)表示法和用于處理數(shù)據(jù)的方法。類(lèi)中的數(shù)據(jù)和方法稱為類(lèi)的成員。函數(shù)在一個(gè)類(lèi)被稱為類(lèi)的成員。
1. c++ 類(lèi)定義
定義一個(gè)類(lèi),本質(zhì)上是定義一個(gè)數(shù)據(jù)類(lèi)型的藍(lán)圖。這實(shí)際上并沒(méi)有定義任何數(shù)據(jù),但它定義了類(lèi)的名稱意味著什么,也就是說(shuō),它定義了類(lèi)的對(duì)象包括了什么,以及可以在這個(gè)對(duì)象上執(zhí)行哪些操作。
類(lèi)定義是以關(guān)鍵字 class 開(kāi)頭,后跟類(lèi)的名稱。類(lèi)的主體是包含在一對(duì)花括號(hào)中。類(lèi)定義后必須跟著一個(gè)分號(hào)或一個(gè)聲明列表。例如,我們使用關(guān)鍵字 class 定義 box 數(shù)據(jù)類(lèi)型,如下所示:
class box { public: double length; // length of a box double breadth; // breadth of a box double height; // height of a box };
關(guān)鍵字 public 確定了類(lèi)成員的訪問(wèn)屬性。在類(lèi)對(duì)象作用域內(nèi),公共成員在類(lèi)的外部是可訪問(wèn)的。您也可以指定類(lèi)的成員為 private 或 protected,這個(gè)我們稍后會(huì)進(jìn)行講解。
2. 定義 c++ 對(duì)象
類(lèi)提供了對(duì)象的藍(lán)圖,所以基本上,對(duì)象是根據(jù)類(lèi)來(lái)創(chuàng)建的。聲明類(lèi)的對(duì)象,就像聲明基本類(lèi)型的變量一樣。下面的語(yǔ)句聲明了類(lèi) box 的兩個(gè)對(duì)象:
box box1; // 聲明 box1,類(lèi)型為 box box box2; // 聲明 box2,類(lèi)型為 box
對(duì)象 box1 和 box2 都有它們各自的數(shù)據(jù)成員。
3. 訪問(wèn)數(shù)據(jù)成員
類(lèi)的對(duì)象的公共數(shù)據(jù)成員可以使用直接成員訪問(wèn)運(yùn)算符 (.) 來(lái)訪問(wèn)。為了更好地理解這些概念,讓我們嘗試一下下面的實(shí)例:
#include using namespace std; class box { public: double length; // 長(zhǎng)度 double breadth; // 寬度 double height; // 高度 }; int main( ) { box box1; // 聲明 box1,類(lèi)型為 box box box2; // 聲明 box2,類(lèi)型為 box double volume = 0.0; // 用于存儲(chǔ)體積 // 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 <