二 面向過程的程式設計風格(1)

2021-10-17 18:38:42 字數 3450 閱讀 6202

1)以一連串函式呼叫操作取代重複編寫相同的程式**,使程式易讀

2)可以在不同的程式中使用這些函式;

3)可以更容易地把工作分配給協作開發團隊。

#include

//...

//以狀態-1結束程式

if(pos <=0)

exit(-

1);

//修正函式原型

bool

fibon_elem

(int pos,

int&elem)

;

想知道某個型別的最小/最大值,可查詢標準庫中的numeric_limitsclass

#include

int max_int = numeric_limits<

int>

::max()

;double min_dbl = numeric_limits<

double

>

::min()

;

void

swap

(int

&val1,

int& val2)

int ival =

1024

;//物件,型別為int

int*pi =

&ival;

//指標pointer,指向乙個int物件

int&rval = ival;

//引用reference,代表乙個int物件

void

display

(const vector<

int>

&vec )

void

display

(const vector<

int>

*vec )

for(

int ix =

0; ix < vec-

>

size()

;++ix)

//vec->size()

cout <<

(*vec)

[ix]

<<

' ';

//(*vec)[ix]

cout << endl;

}

例如fibon_seq()將fibonacci數列以vectorelems返回,無論以pointer或reference都不正確。因為elemsfibon_seq()執行完畢時已不復存在。

應該將elems傳值的方式返回,因為返回的是物件的副本,在函式外依然存在。

new表示式形式如下:

new type;

此處的type可為任意內建型別,也可以是程式知道的class型別。亦可寫為:

new type( initial_value );

int

*pi;

pi =

newint

;//由heap分配出乙個型別為int的物件,再將其位址賦值給pi

//預設情形下,由heap分配的物件,皆未經過初始化

pi =

newint

(1024);

//由heap分配出乙個型別為int的物件,再將其位址賦給pi,

//但這個物件的值被初始化為1024

//釋放pi所指的物件

delete pi;

//刪除陣列中的所有物件

delete

pia;

if

( pi !=0)

//多此一舉——編譯器會替我們檢查

delete pi;

函式如果過度依賴於file scope內的物件,就比較難以在其他環境中重用,也比較難以修改——不僅要了解函式的工作邏輯,還要了解file scope中那些物件的工作邏輯。

void

bubble_sort

(vector<

int>

&vec, ofstrem &ofil)}}

}//每次都要傳入乙個ofstream物件,且使用者不能關閉輸出資訊

//使用者以單一引數呼叫時不產生除錯資訊

//呼叫時帶有第二個引數,指向某個ofstream物件,則產生除錯資訊

void

bubble_sort

(vector<

int>

&vec, ofstrem *ofil =0)

}}}

void

display

(const vector<

int>

&vec, ostream &os = cout)

//標頭檔案宣告,其中指定引數預設值

//我們稱此標頭檔案為numericseq.h

void

display

(const vector<

int>

&, ostream&

= cout)

;

//程式**包含上述標頭檔案,

//函式定義處並沒有指定引數的預設值

#include

"numericseq.h"

void

display

(const vector<

int>

&vec, ostream &os)

函式宣告會被放到標頭檔案,每個打算使用該函式的檔案,都會包含對應的標頭檔案。

函式的定義通常放在程式**檔案,該檔案只被編譯一次,當我們使用該函式時,會將它鏈結(link)到我們的程式中。

所以說標頭檔案為函式帶來更高的可見性。

我們熟悉的所謂面向過程的程式設計風格

面向過程的程式設計風格 什麼是面向過程我想如果你還不知道,那你絕對不是c程式設計師!其實我個人感覺面向過程 模組式的c程式設計風格是最棒的正規化,因為平時我們遇到的大多數問題,都可以用這種正規化解決,而且設計相當的簡潔明快,絕不拖泥帶水,相反不停的折騰物件導向模型真的會讓你離問題本質越來越遠。不管你...

物件導向程式設計風格 基於物件程式設計風格

本文主要通過實現thread 類來展現兩種程式設計風格的不同點。很多人沒有區分 物件導向 和 基於物件 兩個不同的概念。物件導向的三大特點 封裝,繼承,多型 缺一不可。通常 基於物件 是使用物件,但是無法利用現有的物件模板產生新的物件型別,繼而產生新的物件,也就是說 基於物件 沒有繼承的特點。而 多...

物件導向程式設計1 面向過程 到 物件導向

增加了功能強大的輸入輸出方法 cin與cout 使用cin輸入不用過多考慮資料的型別 include using namespace std std 命名空間,主函式前說明,後可直接使用cin,cout 也可在每次使用時對cout 說明,std cout intmain printf可以把格式化輸出...