gpt4 book ai didi

c++函数(带主体)作为参数

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:14 24 4
gpt4 key购买 nike

我想传递一个函数作为参数。我知道您可以像我的示例中的第一个测试一样传递函数指针,但是是否可以像我的第二个测试一样传递保持函数(不是指针)?

#include <iostream>

using namespace std;


/* variable for function pointer */
void (*func)(int);

/* default output function */
void my_default(int x) {
cout << "x =" << "\t" << x << endl << endl;
}


/* entry */
int main() {
cout << "Test Programm\n\n";

/* 1. Test - default output function */
cout << "my_default\n";
func = &my_default; // WORK! OK!
func(5);

/* 2. Test - special output function 2 */
cout << "my_func2\n";
func = void my_func1(int x) {
cout << "x =" << " " << x << endl << endl;
}; // WON'T WORK! FAILED!
func(5);

return 0;
}

最佳答案

在 C++ 11 中,您可以传递 lambda:

func = [](int x) {  cout << "x =" << "  " << x << endl << endl; };

编辑:lambda 可以返回值:

func = [](int x)->int{  cout << "x =" << "  " << x << endl << endl; return x; };

关于c++函数(带主体)作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309447/

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