0
我的代碼存在問題,我不知道如何解決這個問題。所以,我有一個類(例如:myClass),並且在函數內部應該返回一個指向具有myClass作爲參數的void函數的指針。爲了在函數返回指針,我必須在定義類和它的方法之前使用這個語句「typedef void(* fp)(const myClass & object)」,但由於該參數是類型MyClass,編譯器告訴我該類尚未宣佈。 (「fp getFunction()」需要「typedef」和「typedef」需要定義「myClass」。我不知道我已經說清楚了,但我會回答所有問題,如果它們是關於代碼。)同時需要typedef和class
編輯:如果我嘗試在myClass聲明後放置「typedef」,我的編譯器會告訴「fp不是類型」(或類似的東西)。
typedef void(*fp)(const myClass& object);
class myClass{
private:
char statement[100];
void (*_pointer)(const myClass& object);
public:
void setStatement(char *sequence){strcpy(statement,sequence);}
void setPointer(void (*_pointerToFunction)(const myClass& object)) {_pointer = _pointerToFunction;}
fp getFunction() {return _pointer;}
void showStatement() {cout << statement << " ";}
};
你需要預先聲明:http://stackoverflow.com/questions/4926105/what-is-forward-declaration-in-c – vu1p3n0x