關于函數指針及函數指針數組的練習
題目:
標準庫提供了三角函數sin()、cos()和tan(),這些函數都帶有一個double參數,返回一個double值。要使用它們,需要包含標準庫頭文件<cmath>。編寫一個函數calc(),它帶有兩個參數:一個double值和一個指向三角函數的指針,返回把函數應用于double值的結果。編寫一個程序,測試所編寫的函數。如果該函數通過了測試,就建立一個函數指針數組,存儲這個三個三角函數,并測試它們。
答案:
運行結果:
0.909297
-0.416147
-2.18504
標準庫提供了三角函數sin()、cos()和tan(),這些函數都帶有一個double參數,返回一個double值。要使用它們,需要包含標準庫頭文件<cmath>。編寫一個函數calc(),它帶有兩個參數:一個double值和一個指向三角函數的指針,返回把函數應用于double值的結果。編寫一個程序,測試所編寫的函數。如果該函數通過了測試,就建立一個函數指針數組,存儲這個三個三角函數,并測試它們。
答案:
#include <iostream>
#include <cmath>
using std::cout;
using std::endl;
double calc(const double& d, double(*pfun)(double));
void main() {
double(*pfun[3])(double) = {sin, cos, tan};
for (int i=0; i<(sizeof pfun/sizeof pfun[0]); i++)
cout << calc(2.0, pfun[i]) << endl;
}
double calc(const double& d, double(*pfun)(double)) {
return pfun(d);
}
#include <cmath>
using std::cout;
using std::endl;
double calc(const double& d, double(*pfun)(double));
void main() {
double(*pfun[3])(double) = {sin, cos, tan};
for (int i=0; i<(sizeof pfun/sizeof pfun[0]); i++)
cout << calc(2.0, pfun[i]) << endl;
}
double calc(const double& d, double(*pfun)(double)) {
return pfun(d);
}
運行結果:
0.909297
-0.416147
-2.18504
posted on 2009-02-13 18:05 luqingfei 閱讀(508) 評論(0) 編輯 收藏 引用 所屬分類: C++基礎