【发布时间】:2016-07-20 13:20:07
【问题描述】:
我的代码有问题,我不知道该如何解决。所以,我有一个类(例如:myClass)和一个函数,该函数应该返回一个指向以 myClass 作为参数的 void 函数的指针。要返回函数的指针,我必须在定义类及其方法之前使用此语句“typedef void(*fp)(const myClass &object)”,但由于参数是 MyClass 类型,编译器告诉我该类没有'没有被宣布。
("fp getFunction()" 需要 "typedef" 和 "typedef" 需要定义 "myClass"。我不知道我已经说清楚了,但如果它们是关于的,我会回答所有问题代码。)
编辑:如果我尝试在 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 << " ";}
};
【问题讨论】:
-
你需要一个前向声明:stackoverflow.com/questions/4926105/…
标签: c++ function oop methods typedef