[英]C++ class member pointer to global function
我希望有一個類作為成員指向函數的指針
這是函數指針:
typedef double (*Function)(double);
這是一個適合函數指針定義的函數:
double f1(double x)
{
return 0;
}
這是課堂定義:
class IntegrFunction
{
public:
Function* function;
};
在主要功能的某個地方,我想做這樣的事情:
IntegrFunction func1;
func1.function = f1;
但是,這段代碼不起作用。
是否可以為類成員分配一個指向全局函數的函數指針,如上所述? 或者我必須在函數指針定義中更改某些內容?
謝謝,
替換這個:
class IntegrFunction
{
public:
Function* function;
};
有了這個:
class IntegrFunction
{
public:
Function function;
};
你的typedef已經創建了一個指向函數的指針。 聲明Function* function
創建指向Function* function
的指針。
只需更換
Function* function;
至
Function function;
您將變量聲明為Function* function
,但Function
typedef已經是指針的typedef。 所以函數指針的類型只是Function
(沒有*)。
更換
typedef double (*Function)(double);
通過
typedef double Function(double);
to typedef函數類型。 然后,您可以在使用時編寫*
。
您需要使用address-of運算符來獲取標准C ++ 03中的函數指針。
func1.function = &f1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.