访问“ extern”定义的变量时为什么会得到“未命名类型”

时间:2019-12-15 21:12:31

标签: c++ gcc

我有一个.h文件,其中包含类定义和静态变量的extern定义 随附的.cpp文件声明并初始化此变量。

但是,当我尝试在main.cpp中访问此变量时,出现does not name a type错误。 我在做什么错了?

test.h文件的内容:

#pragma once
namespace Mine {
class Test {
  ...
};
} // namespace 
extern Mine::Test* variable;

test.cpp文件的内容:

Mine::Test* variable = nullptr;

main.cpp的内容:

#include "test.h"

variable = new Mine::Test();

1 个答案:

答案 0 :(得分:0)

如@ pete-becker所建议的,将variable中的main.cpp的初始化放入函数中即可解决此问题。

但是我不明白为什么

[编辑]现在,请参见下面的评论