【问题标题】:Is there a way to declare a pointer in a header file and instantiate it in a .cpp?有没有办法在头文件中声明指针并在 .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 是什么文件?

标签: c++ pointers


【解决方案1】:

只要源文件中的变量不是static(内部链接),就可以在头文件中用extern FILE* stream;声明变量。这就是我们声明全局变量的方式:

.h:

extern FILE* stream;

.cpp:

FILE* stream;

就您的错误而言,您可能需要#include <cstdio>

【讨论】:

    【解决方案2】:

    尝试在头文件中将其声明为extern FILE* straem;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2012-11-18
      • 2016-11-13
      • 2011-08-03
      相关资源
      最近更新 更多