主要的oop特性:
定義類的過程:
類宣告:以資料成員的方式描述資料部分,以成員函式的方式描述公用介面。
類方法定義:描述如何實現對應的成員函式。
//宣告,也即是原型
class
stack
//直接定義的函式,將作為內聯函式
void
func1()
const
;//const 函式
intfunc2()
;stack()
;//預設建構函式
stack
(int m,
int n,
double q)
;//建構函式
~stack()
;//析構函式};
//定義過程,完成函式的定義
void stack::
func1()
const
stack::
stack()
訪問型別
類和結構的唯一區別在於,結構的預設訪問型別是public,而類的預設訪問型別為private。
成員函式
若某個成員為private,則只能通過公有的方法呼叫該方法進行使用。
定義位於類宣告中的函式,將自動成為內聯函式。(內聯函式在每個使用它們的檔案中都要對其進行定義)。
資料成員
每個物件的儲存空間都只是它們的資料成員。也就是說,成員函式是一整個類的公有的部分。
在建構函式和析構函式中,可以使用物件中資料成員。
建構函式:
stack food=stack
;//#1建構函式
stack food
;//#2建構函式
stack food;
//#3預設建構函式
預設建構函式:
當沒有定義建構函式時,編譯器將提供乙個空的預設建構函式。
若定義了乙個建構函式後,則必須再提供乙個預設建構函式。
構造預設建構函式的方法:
析構函式:
如果沒有定義析構函式,編譯器會預設提供乙個析構函式。
可以通過析構函式觀察得到,最先建立的物件,最後被清除。這是因為程式過程中,自動變數是儲存在棧中的。
如果建構函式中使用了new語句,則在析構函式中一定要使用delete語句。
const成員函式主要用於避免對物件成員進行修改。
class
stack
;void stack::
show()
const
const stack no_1;
//表明物件no_1不可被修改,只能呼叫stack類中的const成員函式
this指標指向的是自身物件。*this是自身物件的別稱。
每個成員函式(建構函式和析構函式)都有乙個this指標。this指標指向呼叫物件。
應用例項:通過成員函式,來比較自身物件和另乙個物件的數值大小。
stack &
func
(const stack & temp)
const
stack buffer[4]
;//呼叫預設建構函式
stack buffer[4]
=;//呼叫建構函式進行初始化定義
stack one=
stack()
;//預設建構函式
stack two=
stack
(a,b)
;//建構函式,拷貝初始化
stack three;
//預設建構函式
stack four
(a,b)
;//建構函式,直接初始化
物件初始化示例**
#include
#include
#include
using
namespace std;
class
person
person
(const string & ln,
const
char
*fn=
"heyyou");
void
show()
const
;void
formalshow()
const;}
;int
main()
person::
person
(const string & ln,
const
char
*fn)
//定義處不寫預設值
void person::
show()
const
void person::
formalshow()
const
類中宣告的名稱:變數或者成員函式的名稱,作用域都是整個類。
在類宣告之外,定義成員函式時,必須使用作用域解析符,如stack::。
在類中宣告乙個常量有兩種方式:
可以用於設計佇列,堆疊,等抽象的資料型別。
//堆疊基礎實現 :只能儲存特殊的資料型別
#include
using
namespace std;
struct customer
;class
stack
customer pop()
;void
push
(const customer & temp)
;bool
is_full()
;bool
is_empty()
;};int
main()
while
(!one.
is_empty()
)}customer stack::
pop(
)void stack::
push
(const customer &temp)
bool stack::
is_full()
bool stack::
is_empty()
C 類與物件
程式設計模型 所有計算機均由兩種元素組成 和資料.精確的說,有些程式是圍繞著 什麼正在發生 而編寫,有些則是圍繞 誰正在受影響 而編寫的.抽象封裝 封裝是一種把 和 所操作的資料 在一起,使這兩者不受外界干擾和誤用的機制.繼承 繼承是指乙個物件從另乙個物件中獲得屬性的過程.是物件導向程式設計的三大原...
C 類與物件
c 類與物件 區分物件導向與面向過程 物件導向是指一種程式設計范型,同時也是一種程式開發的方法。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性 靈活性和擴充套件性。物件導向 利用物件間的訊息傳遞來驅動程式的執行。優點 真實表現客觀世界,物件間的關係清晰,物件間的訊息處理高效。面...
C 類與物件
類是物件導向的核心機制,是物件導向設計中對具有相同或相似性質的物件的抽象,是對資料和操作進行封裝的載體,進而保證了對資料的安全 高效 合理的訪問 物件是類的例項,是類的具體個體,對應現實世界的實體。類的定義 class 類名 void showclock 習慣上在類的宣告中只定義函式的原型,在類外定...