簡體   English   中英

在C ++中傳遞函數類型的參數是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM