C 中函式指標 函式物件的概念以及使用

2022-09-12 04:30:14 字數 2217 閱讀 4792

「不了解指標,就不了解c」

指標是c/c++中重要的概念,也是c/c++區別於其他程式語言的特點之一。

毫不誇張地說,指標之於c的重要性相當於物件之於j**a的重要性一樣。

指標的基本概念和相關語法在此不做贅述,需要學習的人前往 c++指標|菜鳥教程 學習。

在這裡只介紹函式指標的概念和基本用法。

函式指標就是指向函式的指標,通過指標訪問函式。

與通過函式名訪問函式不同的是,通過指標訪問函式在很多時候可以簡化**,在一定程度上提高**可讀性。

例如,下面是乙個利用函式指標求積分的例子,利用積分的定義(無限分割,這裡用的是小矩形塊)來求積分:

//

calculate用於計算積分。一共三個引數。第乙個為函式指標func,指向待積分函式。二三引數為積分上(函式指標版)

double calculate_func(double(*func)(double x), double a, double

b)

return

sum;

}

被積函式:

//

函式f(x) = x^2

double func_1(double

x)//

函式f(x) = x^3

double func_2(double

x)

main函式:

int

main()

執行結果:

函式物件是c++特有的玩意(過載運算子是真的可以讓語言變騷,難怪j**a禁止過載運算子)。

函式本身是面向過程的產物,而c++允許過載運算子,在乙個類中過載了函式呼叫( )運算子後,這個類的物件就擁有函式的能力。

就像是連線了新舊兩個世界一樣,函式物件既可以用於封裝資料和方法,本身也可以作為函式被呼叫。

如果將函式指標也一起運用起來,會產生一些意想不到的效果。

還是上面那個求積分的例子,這次我們用函式物件來封裝一下,並且新增梯形分割方式:

/*

函式物件版積分calculate用於計算積分。一共三個引數。第乙個為函式指標func,指向待積分函式。二三引數為積分上下限

*/class

calculate_class

return

sum;

}//梯形方式積分

double calcuastrape(double (*func)(double x), double a, double

b)

return

sum;

}public

:

//設定積分精度,t_dx為積分精度

void setprecision(double t_dx)

//預設構造、建構函式,t_dx為積分精度

calculate_class(double t_dx = 0.00001):dx(t_dx),sum(0

){}

//過載()運算子,建構函式物件

double

operator()(double (*func)(double x), double a, double b, int

method)

};

main函式:

int

main()

執行結果:

函式物件calculate_class封裝了兩種求積分的基本方法:矩形分割法和梯形分割法,通過傳入整數method來選擇確定的積分方法,得到了乙個封裝的類。

如果有需要的話,還可以將被積函式全部封裝到乙個類myfuc中,將其中的所有函式宣告為static,完成簡單的封裝

class

myfunc

static

double func_2(double

x)

};

main函式改為:

int

main()

c++真的是我學過的最騷氣也最讓人著迷的程式語言

C 中的函式指標和函式物件總結

原文 篇 一 函式指標 函式指標 是指向函式的指標變數,在c編譯時,每乙個函式都有乙個入口位址,那麼這個指向這個函式的函式指標便指向這個位址。函式指標的用途是很大的,主要有兩個作用 用作呼叫函式和做函式的引數。函式指標的宣告方法 資料型別標誌符 指標變數名 形參列表 一般函式的宣告為 int fun...

C 中的函式指標和函式物件總結

篇 一 函式指標 函式指標 是指向函式的指標變數,在c編譯時,每乙個函式都有乙個入口位址,那麼這個指向這個函式的函式指標便指向這個位址。函式指標的用途是很大的,主要有兩個作用 用作呼叫函式和做函式的引數。函式指標的宣告方法 資料型別標誌符 指標變數名 形參列表 一般函式的宣告為 int func i...

C 中的函式指標和函式物件總結

第一篇 函式指標 函式指標,表示的是乙個指標,它指向的是乙個函式,它含義是指指向函式的指標變數,在c編譯時,每乙個函式都有乙個入口位址,那麼這個指向這個函式的函式指標便指向這個位址。函式指標的用途是很大的,主要有兩個作用 1 用作呼叫函式 2 做函式的引數。函式指標的宣告方法 資料型別標誌符 指標變...