首页 > 解决方案 > 使用函数声明初始化函数指针 - 有可能吗?

问题描述

是否可以在 C++ 中使用函数声明来初始化函数指针?我的意思是,像这样:

void (*pointer)(void) = &( void function(void) );

或这个:

void (*pointer)(void) = void function(void);

标签: c++pointersinitializationdeclaration

解决方案


不,因为 C++ 中的任何变量(包括函数指针)都必须用表达式初始化,而函数声明不是表达式。

您可能想改用无捕获的 lambda 表达式:

void (*pointer)() = []{ std::cout << "hello world\n"; };

推荐阅读