簡體   English   中英

C ++類成員指向全局函數的指針

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

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