繁体   English   中英

C ++中的函数指针对象前向声明

[英]Function pointer object forward declaration in C++

我在头C ++文件中有一组函数指针对象,我将此文件包含在主头文件中,然后尝试在另一个C ++文件中使用这些对象(初始化函数指针,然后通过代码的另一部分使用这些指针),但是我总是收到“多个定义”错误。 有没有一种方法可以在头文件中声明全局函数指针对象?

您可以在主标题中执行此操作。 (假设您使用的是称为FnPointer的typedef)

extern FnPointer fn;

然后在您的实施文件中

FnPointer fn;

extern表示此变量将存在,但稍后我将在其他一些编译单元中为其分配空间。)

就像其他任何全局指针一样使用它们。

  • 将函数指针声明为头文件之一中的extern
  • 将标头包含在定义变量&的源文件之一中
  • 将标头包含在所有引用该变量的源文件中。

第1步:

file.h

extern Func_Pointer ptr1;  /* Declaration of the function pointer */ 

第2步:
file.cpp

 #include "file.h"  /* Declaration is available through header */  

  /* define it here */ 
  Func_Pointer ptr1 = //some address;    

第三步:
someOtherfile.cpp

#include "file.h" 

void doSomething(void) 
{     
    *(ptr1)(); //Use it here
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM