1)以一連串函式呼叫操作取代重複編寫相同的程式**,使程式易讀;2)可以在不同的程式中使用這些函式;
3)可以更容易地把工作分配給協作開發團隊。
#include
//...
//以狀態-1結束程式
if(pos <=0)
exit(-
1);
//修正函式原型
bool
fibon_elem
(int pos,
int&elem)
;
想知道某個型別的最小/最大值,可查詢標準庫中的numeric_limits
class
#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都不正確。因為elems
在fibon_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可以把格式化輸出...