Essential C 之面向過程

2021-07-27 12:19:06 字數 3058 閱讀 9571

#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( )的

宣告和定義通常是:

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

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

void display (const vector& , ostream&=cout);

//程式本文含入上訴標頭檔案

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

#include "numericswq.h"

void display (const vector&vec,ostream &os)

(page 71/230) 使用區域性靜態物件

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...