[英]What does it mean to pass a parameter of function type in C++?
前一陣子我發現可以寫一個C ++函數,它接受函數類型的參數( 不是函數指針類型!)。 例如,這是一個函數,它接受一個接受並返回double的回調函數:
void MyFunction(double function(double));
我的問題是擁有函數類型的變量意味着什么,因為你不能在任何其他上下文中聲明一個。 從語義上講,它與函數指針或函數引用有什么不同? 我應該注意函數指針和函數類型變量之間是否存在重要區別?
就像void f(int x[])
和void f(int* x)
,以下兩個是相同的:
void MyFunction(double function(double));
void MyFunction(double (*function)(double));
或者,在官方語言(C ++ 03 8.3.5 / 3)中,在確定函數的類型時,
在確定每個參數的類型之后,將“
T
數組”或“函數返回T
”類型的任何參數分別調整為“指向T
指針”或“指向函數返回T
指針”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.