我有以下代碼陣列的函數指針的成員函數
#include<iostream>
using namespace std;
class operate
{
int x;
int y;
public:
operate(int _x, int _y):x(_x), y(_y)
{}
void add(const char* ch)
{
cout<<ch<<" "<<x+y;
}
void subtract(const char* ch)
{
cout<<ch<<" "<<x-y;
}
void multiply(const char* ch)
{
cout<<ch<<" "<<x*y;
}
};
int main()
{
void (operate::*fptr[3])(const char*);
operate obj(2,3);
fptr[0] = &(operate.add); //problem
fptr[1] = &(operate.multiply); //problem
fptr[2] = &(operate.subtract); //problem
(obj.*fptr[0])("adding");
(obj.*fptr[1])("multiplying");
(obj.*fptr[2])("subtracting");
}
看來我不分配成員函數正常工作指針數組。我該如何解決這個問題。我正在使用VS2010
請決定是否有錯誤或不。如果您確定存在錯誤,請告訴我們您期望的行爲以及實際發生的行爲。 – Oswald
@Oswald有一個錯誤,VS2010編譯器沒有顯示正確的錯誤信息。它顯示了標點符號的位置,並且包括這些,這又是一個編譯器錯誤 – Saksham