#include
using
namespace
std;
bool fibon_elem(int , int &);
int main()
bool fibon_elem (int pos,int &elem)
//位置值為1和2時,elem的值為1
elem = 1;
int n_2 = 1;
int n_1 = 1;
for ( int ix = 3; ix <= pos; ++ix)
return
true;
}
這種使用者想知道的兩個或甚至更多元素值,他必須這行這個程式兩次
或多次,改寫 main( ),使他允許使用者不斷輸入位置值,直到使用者希望停止為止
int main()
return
0; }
page 67/230動態記憶體管理:heap memory
new表示式:
int *p;
p = new
int ; //new type
p = new
int ( 1024 ) ; //new type ( initial_value)
int *pia = new
int[24];
heap配置來的物件,都沒有經過初始化,而new表示式的另一種表示式允許我們指定初值(見上)存活期是存活直到delete釋放
delete pi;
delete pi;//刪除陣列中的所有物件
//不使用delete會變成記憶體洩漏
預設引數值:
void bubble_sort (vector
&vec,ofstream &ofil )
void bubble_sort (vector
&vec,ofstream *ofil = 0)
//在display中使用預設引數,讓cout成為預設ostream引數
void display( const
vector
&vec, ostream &os = cout )
為了更高的可見度,預設值置於函式宣告處,而非定義處,因此,display( )的(page 71/230) 使用區域性靜態物件宣告和定義通常是:
//標頭檔案宣告,其中指定了引數預設值
//讓我們稱此標頭檔案為:numericseq.h
void display (const vector& , ostream&=cout);
//程式本文含入上訴標頭檔案
//置於函式定義處,並沒有指定引數的預設值
#include "numericswq.h"
void display (const vector&vec,ostream &os)
const
vector
*fibon_seq(int size)
了解inline:
過載函式:
模板函式:將參數列中指定的所有(或部分)引數的型別資訊抽離出來,
這份資訊由使用者提供,當他決定用function template的某個實體時提供
//這些名稱用來表示我們希望【延緩決定的資料型別】
template
void display_message( const string &msg,
const vector &vec )
elem = (*pseq)[ pos - 1];
return
true;
}我們消除這個(a),就可以消除這個關聯性,就不必提供多個fibon_elem( ) 相似函式了。 使用函式指標,返回型別為
const vector*
,參數列內容為 int,定義的是乙個指標,需要乙個名稱,姑且稱為seq_ptr。
const vector* (*seq_ptr)( int ); //最終形式
此時,seq_ptr指向「具有所列之返回值型別以及參數列」的任何乙個函式。
//現在將fibon_elem()重新寫過,使其為更加通用的seq_elem()
bool seq_elem (int pos,int &elem,
const
vector
* (*seq_ptr)(int))
elem = (*pseq)[pos-1];
return
true;
}
一次定義規則下的例外情況://也可以使用陣列來存放函式指標
const
vector
* (*seq_array)(int) = ;
//可以使用輔助記憶的常量來索引操作,就不需要記住對應函式是哪乙個下標了
enum ns_type ;
seq_ptr = seq_array[ ns_pell ];
inline:
const object:此定義一出檔案之外就不可見,其他的需要用extern宣告
Essential C 學習(二)面向過程程式設計
函式包含函式名,返回型別,引數列表和函式體,必須先宣告才能被呼叫。練習2.1 使用者詢問fibonacci數列的任一位置的元素值,輸出並列印數列。include include includeusing namespace std bool fibon elem int,int bool fibon...
軟體設計之面向過程
1.面向過程的定義 一種較早的程式設計思想,顧名思義該思想是站在過程的角度思考問題,強調的就是功能行為,功能的執行過程,即先幹什麼,後幹什麼。而每乙個功能我們都使用函式 類似於方法 把這些功能一步一步實現,使用的時候依次呼叫函式就可以了 2.面向過程的設計 最小的程式單元是函式,每個函式就負責完成某...
Python基礎之面向過程程式設計
定義階段 import os,time def init func 裝飾器的作用是使下面的生成器初始化,yield等著被傳值 res func args,kwargs next res 呼叫生成器初始化 return res init def search target 找到檔案的絕對路徑 whil...