第一步:
將某類客觀事物共同特點(屬性)歸納出來,形成乙個資料結構(可以用多個變數描述事物的屬性);
將這類事物所能進行的行為也歸納出來,形成乙個個函式,這些函式可以用來運算元據結構(==這一步叫「抽象
==」)。
第二步:
然後,通過某種語法形式,將資料結構和操作該資料結構的函式「**」在一起,形成乙個「類」,從而使得資料結構和操作該資料結構的演算法呈現出顯而易見的緊密關係,這就是「封裝」。
物件導向的程式設計具有四個基本特點
抽象、封裝、繼承、多型
下面我們定義乙個矩形類:
屬性:長,寬。
行為:面積,周長,長與寬的大小。
注:定義乙個類結束時,必須有分號(;)
長、寬變數成為該「矩形類」的「成員變數,三個函式成為該類的成員函式。 成員變數和成員函式統稱為類的成員。成員函式是可以進行過載以及引數預設
class
crectangle
//定義乙個類
intperimeter()
void
init
(int w_,
int h_ )};
//必須有分號
intmain()
說明:通過類,可以定義變數。類定義出來的變數,也稱為類的例項,就是我們所說的「物件」 。 c++中,類的名字就是使用者自定義的型別的名字。可以象使用基本型別那樣來使用它。crectangle 就是一種使用者自定義的型別物件的記憶體分配:
和結構變數一樣,物件所占用的記憶體空間的大小,等於所有成員變數的大小之和。對於上面的crectangle類,sizeof(crectangle) = 8物件間的運算:
和結構變數一樣,物件之間可以用 「=」進行賦值,但是不能用 「==」,「!=」,「>」,「<」「>=」「<=」進行比較,除非這些運算子經過了「過載」。用法一:
物件名.成員名
crectangle r1,r2;
r1.w =5;
r2.init(5
,4);
注: init函式作用在 r2 上,即init函式執行期間訪問的w 和 h是屬於 r2 這個物件的, 執行r2.init 不會影響到 r1。
用法二:
指標->成員名
crectangle r1,r2;
crectangle * p1 =
& r1;
crectangle * p2 =
& r2;
p1->w =5;
p2->
init(5
,4);
//init作用在p2指向的物件上
用法三:
引用名.成員名
crectangle r2;
crectangle & rr = r2;
//這裡使用了引用
rr.w =5;
rr.init(5
,4);
//rr的值變了,r2的值也變
class
crectangle
;//必須有分號
int crectangle ::
area()
int crectangle ::
perimeter()
void crectangle ::
init
(int w_,
int h_ )
crectangle :: 表明後面的函式是crectangle 類的成員函式。 基本概念 類和物件
class object 類物件 類是對一群有共同特徵的事物或事件的 集合。而類物件就是類的 例項化。類中的成員物件。乙個類的所有物件對應同乙個類物件。如現實世界中的動物是一種類,植物也是一種類,可以理解人就是 動物類的一種物件,草是植物類的一種物件。類物件的生成過程,包括物件的宣告 例項化和初始化...
19 C 類和物件的基本概念
我們編寫程式的目的是為了解決現實中的問題,而這些問題的構成都是由各種事物組成,我們在計算機中要解決這種問題,首先要做就是要將這個問題的參與者 事和物抽象到電腦程式中,也就是用程式語言表示現實的事物。那麼現在問題是如何用程式語言來表示現實事物?現實世界的事物所具有的共性就是每個事物都具有自身的屬性,一...
基本概念 C 基本概念
由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...