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

爲什麼我不能從靜態成員函數返回指向const的指針?或者我可以嗎?如何從靜態函數返回指向const的指針?

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

我只是不想讓來電者改變函數指針他得到了。

回答

1

你試圖在你的代碼中返回的是一個指向常量非成員函數的指針(但這不是一個有效的結構,只有成員函數可以是常量)。

你想要做的是一個常量指針返回的功能,這將是這樣寫的:

static Function * const Get...(); 

const總是應用於類型與其立即離開;除非它是第一件事情(因爲static是無類型的,因此不能製作const - 在這種情況下,它適用於它的直接右側的類型,即Function),所以函數類型本身,而不是指針。

相關問題