2016-03-31 76 views
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 << " ";} 
}; 
+0

你需要預先聲明:http://stackoverflow.com/questions/4926105/what-is-forward-declaration-in-c – vu1p3n0x

回答

4

前向申報myClassclass

typedef void(*fp)(const class myClass& object); 
         ^^^^^