【发布时间】:2009-11-06 09:34:23
【问题描述】:
我在头文件的命名空间中有一些extern'd 变量,我正在尝试在其相应的 cpp 文件中初始化它们。但是,我不断收到主题标题中给出的错误。我不确定是什么问题。
前:
// Some header
namespace foo
{
extern SDL_Surface* bar;
}
// In the impl file
#include "someheader.h"
foo::bar = 0;
.....
感谢您提供任何帮助。谢谢。
【问题讨论】:
-
那么,你想初始化一个指向无效指针表示(NULL)的指针吗?为什么?
-
如果你把它放在命名空间之外,它可以工作吗?
-
@Ed 这只是为了检查事情是否已初始化没问题,它需要一个演员顺便说一句
-
@Ed 因为让它未初始化是滑坡到未定义行为的一步。 IE。如果有人尝试使用它并且它没有被初始化,那么可能会发生非常糟糕的事情。
-
@RageZ 我过去在没有命名空间的情况下做过类似的事情,它已经奏效了。
标签: c++