2013-11-04 51 views
1
static const Function* Get...(); 

为什么我不能从静态成员函数返回指向const的指针?或者我可以吗?如何从静态函数返回指向const的指针?

typedef void Function(Object * object, HandlerAction action); 

我只是不想让来电者改变函数指针他得到了。

回答

1

你试图在你的代码中返回的是一个指向常量非成员函数的指针(但这不是一个有效的结构,只有成员函数可以是常量)。

你想要做的是一个常量指针返回的功能,这将是这样写的:

static Function * const Get...(); 

const总是应用于类型与其立即离开;除非它是第一件事情(因为static是无类型的,因此不能制作const - 在这种情况下,它适用于它的直接右侧的类型,即Function),所以函数类型本身,而不是指针。

相关问题