【发布时间】:2013-11-04 11:03:23
【问题描述】:
static const Function* Get...();
为什么我不能从静态成员函数返回指向 const 的指针?或者我可以吗?
在哪里
typedef void Function(Object * object, HandlerAction action);
我只是不想让调用者改变他得到的函数指针。
【问题讨论】:
标签: c++ static constants member-functions
static const Function* Get...();
为什么我不能从静态成员函数返回指向 const 的指针?或者我可以吗?
在哪里
typedef void Function(Object * object, HandlerAction action);
我只是不想让调用者改变他得到的函数指针。
【问题讨论】:
标签: c++ static constants member-functions
您试图在代码中返回一个指向常量非成员函数的指针(但这不是一个有效的构造,只有成员函数可以是常量)。
你要做的是返回一个指向函数的常量指针,它可以这样写:
static Function * const Get...();
const 始终适用于其紧靠左侧的类型;除非它是第一件事(在你的情况下,因为 static 不是类型,因此不能成为 const - 在这种情况下,它适用于其直接右侧的类型,在你的情况下是 Function ,所以是函数类型本身,而不是指针。
【讨论】: