[英]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.