gpt4 book ai didi

c++ - 在定义 ClassName 之前采用参数 ClassName * 的 typedef 函数指针?

转载 作者:行者123 更新时间:2023-11-28 01:05:13 25 4
gpt4 key购买 nike

我有以下情况:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com