如何在C ++中声明extern类指针?

时间:2015-05-19 17:30:03

标签: c++ pointers header extern

以下是cpp文件中声明的变量,但是我收到错误,所以我进行了一项研究,发现我需要在头文件中声明它。因此,如何在头文件

中声明和外部类指针
 extern AnimationController* g_pAnimationController;

1 个答案:

答案 0 :(得分:2)

就像你在那里一样。例如:

// In header file:
// Declare the pointer with external linkage.
extern int* my_global_int;

// In source file:
// Define the pointer so that the linker can link stuff together with the code
// referencing the `my_global_int` symbol.
int* my_global_int = 0;

对于类和结构,如果类型未知,那么我们需要一个前向声明,以便编译器知道它是什么。但是我们可以将它与声明结合起来,如下所示:

// In header file:
extern class AnimationController* g_pAnimationController;

或者写得更详细:

// In header file:
class AnimationController;
extern AnimationController* g_pAnimationController;

评论问题更新:

#include <map>
#include <string>

// Declare AnimationCallback
extern std::map<std::string, AnimationCallback*> g_mCallbackMap;