gpt4 book ai didi

c++ - 将函数作为参数传递的意义

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:53 29 4
gpt4 key购买 nike

我刚刚学习了如何在 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;
}

为什么我需要在 myFunction 中将 argumentFunction 作为参数传递,实际上我可以直接调用它而不传递它:

像这样:

#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;
}

最佳答案

一个例子在 C 标准库函数中 qsort , 具有签名:

void qsort(void *base, size_t nmemb, size_t size,
int (*compar)(const void *, const void *));

这允许程序员将任意比较函数传递给现有的排序算法,而不必为需要完成的每种排序类型编写一个全新的排序函数。

关于c++ - 将函数作为参数传递的意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30520281/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com