如何將C++中的成員函數重載到其他成員函數(或函數指針)?如何將成員函數分配給重載的成員函數指針?
我的目標是包裝成員函數。我有以下代碼,它不工作,因爲它有2個「Do」。我想要做的是將Do1
或Do2
包裹到Do
與任何double *
或double **
。因此,我只能運行Do
,不需要關心Do1
或Do2
。 (也許,我應該指定需要Do1
和Do2
之間進行選擇的條件。)
class Sample {
int (*Do)(double *arr);
int (*Do)(double **arr);
int Do1(double *arr);
int Do1(double **arr);
int Do2(double *arr);
int Do2(double **arr);
};
或者你對這個目標有什麼建議?
此外:對於Thomas,函數對象(函子)是一個好主意,但它只能解決重載問題。我想選擇功能(例如,Do1
或Do2
)。我有幾個規定的功能,我可以選擇其中的一個到Do
。但是,我也想將自定義功能分配給Do
。 例如,當我運行Do
時,我可以運行Do1
,Do2
或我自己的新定製功能。 (我應該設置什麼功能將被執行時,我做一個實例)
和..我不能在我的情況下使用C++ 11。 (我想,但我的服務器有一個較舊的GCC版本)
您是否嘗試過使用函數對象而不是函數指針? –