我只是学习在c ++中传递一个作为参数的函数,但是我想知道它的意义是什么.
考虑这个例子,
#include <iostream>
using namespace std;
void argumentFunction(int x) {
cout << x << " is the result.";
}
void myFunction(void (*functionparam) (int), char parameter[80]) {
cout << parameter;
(*functionparam)(1);
}
int main() {
myFunction(&argumentFunction, "I am calling a function with a function.");
cin.ignore(80,'\n');
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么我需要将argumentFunction作为参数传递给myFunction,实际上我可以直接调用它而不传递它:
像这样:
#include <iostream>
using namespace std;
void argumentFunction(int x) {
cout << x << " is the result.";
}
void myFunction(char parameter[80]) {
cout << parameter;
argumentFunction(1);
}
int main() {
myFunction( "I am calling a function with a function.");
cin.ignore(80,'\n');
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一个例子是C标准库函数qsort,它具有签名:
void qsort(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *));
Run Code Online (Sandbox Code Playgroud)
这允许程序员将任意比较函数传递给现有的排序算法,而不必为每种需要完成的排序类型编写一个全新的排序函数.
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |