我有以下情况:
typedef void (*F_POINTER)(ClassName*);
class ClassName {
public:
F_POINTER f;
}
发生这种情况是因为 ClassName 的实例需要将指针本身传递给客户端。但是,如果我按这个顺序写东西,我会提示没有声明 ClassName,诸如此类。但是,如果我调换它们,当我在类中声明实例时,我会提示 F_POINTER 没有被声明。
所以也许我在这里遗漏了一些简单的东西,但我该如何完成呢?
最佳答案
前向声明:
class ClassName;
typedef (*F_POINTER)(ClassName*);
class ClassName {
public:
F_POINTER f;
}
或更短:
typedef (*F_POINTER)(class ClassName*); // implicit declaration;
关于c++ - 在定义 ClassName 之前采用参数 ClassName * 的 typedef 函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6543313/