gpt4 book ai didi

c++ - 如何在 C++ 中将变量用作函数?

转载 作者:太空狗 更新时间:2023-10-29 19:46:39 25 4
gpt4 key购买 nike

在某些语言中(想到 PHP 和 JavaScript),我可以将变量用作函数。例如:

PHP: Class::$var_function();

是否可以在 C++ 中以不需要 switch 或 if 语句的方式实现这一点?

最佳答案

James 的回答可能是最好的。但是,如果您使用的是 c++11 兼容编译器,则可以交替使用 std::function

例如:

#include <functional>
#include <iostream>
typedef std::function<void(int a)> callback_t;

class A {
public:
void fn(int a) { std::cout << a << std::endl; }
};

void fn2(int b) { std::cout << a << std::endl; }

int main() {
A a;
callback_t c = std::bind(&A::fn, a, std::placeholders::_1);
c(1);

c = fn2;
c(2);

return 0;
}

还有一个提升版本(我从来没有用过这个所以它可能是错误的):

#include <boost/function.hpp>
#include <iostream>
typedef boost::function<void(int a)> callback_t;

class A {
public:
void fn(int a) { std::cout << a << std::endl; }
};

void fn2(int b) { std::cout << a << std::endl; }

int main() {
A a;
callback_t c = boost::bind(&A::fn, a, boost::placeholders::_1);
c(1);

c = fn2;
c(2);

return 0;
}

关于c++ - 如何在 C++ 中将变量用作函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783877/

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