有没有办法在头文件中声明指针并在 .cpp 中实例化它?
Posted
技术标签:
【中文标题】有没有办法在头文件中声明指针并在 .cpp 中实例化它?【英文标题】:Is there a way to declare a pointer in a header file and instantiate it in a .cpp? 【发布时间】:2011-03-08 03:56:40 【问题描述】:正如我的问题所写: 有没有办法在头文件中声明指针并在.cpp中实例化它?
到目前为止我有这个:
.h:
FILE* stream;
.cpp
stream = fopen("com2", "r");
但这给了我这个错误:
1>gpsHandler.obj:错误 LNK2001: 未解析的外部符号“结构 _iobuf * 流" (?stream@@3PAU_iobuf@@A) 1>C:\Users***\portReading\Debug\portReading.exe : 致命错误 LNK1120: 1 未解决 外在
【问题讨论】:
您是否在 .cpp 中包含了头文件? 虽然您的操作不正确,但您发布的错误消息仍然与您发布的“代码”不一致。编辑您的帖子。 .h 文件的名称是什么? .cpp 文件的名称是什么?前者包含在后者中吗?gpsHandler
是什么文件?
【参考方案1】:
只要源文件中的变量不是static
(内部链接),就可以在头文件中用extern FILE* stream;
声明变量。这就是我们声明全局变量的方式:
.h:
extern FILE* stream;
.cpp:
FILE* stream;
就您的错误而言,您可能需要#include <cstdio>
【讨论】:
【参考方案2】:尝试在头文件中将其声明为extern FILE* straem;
?
【讨论】:
以上是关于有没有办法在头文件中声明指针并在 .cpp 中实例化它?的主要内容,如果未能解决你的问题,请参考以下文章