0
私のコードに問題があり、どのように解決できるかわかりません。だから、私はクラス(ex:myClass)とmyClassをパラメータとして持つvoid関数でポインタを返さなければならない関数の中にあります。関数でポインタを返すには、クラスとそのメソッドを定義する前にこのステートメント "typedef void(* fp)(const myClass &オブジェクト)を使用する必要がありますが、パラメータはMyClass型なので、クラス宣言されていない。同時にtypedefとクラスを要求します
( "fp getFunction()"には "typedef"が必要であり、 "typedef"には "myClass"が定義されている必要がありますが、わかりません。コードについて。
EDIT: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