【发布时间】:2015-08-07 21:05:03
【问题描述】:
我有以下代码:
// header.h
class Outer
{
class Mid
{
Mid();
~Mid ();
};
class Inner
{
private:
static Mid m_mid;
};
};
当我在 cpp 文件中定义静态私有对象时,它给了我一个错误,说 Mid 没有命名类型:
// header.cpp:
# include "header.h"
Mid Mid::m_mid;
{Begin definitions for Outer, Mid and Inner from here}
任何线索为什么编译器会抱怨这个? : Mid 没有命名类型
【问题讨论】:
-
您在类声明的末尾忘记了分号
-
哦,是的,我的代码中有它。这只是我快速想出的一个示例骨架。
-
@noobcoder 您应该始终发布给您带来问题的确切代码;如果您正在编写一个新的可重现示例(这是一个很好的做法),您应该运行它以确保。否则,你怎么知道它仍然给出错误? (如果重要的话,这也不是我的反对意见)
-
不是我的反对意见,但无论如何,在发布问题时不要在示例代码中插入任意代码错误会有所帮助。否则,人们只会看到那些并继续前进。你应该编辑和修复它。
-
我不赞成,因为坦率地说,这很愚蠢。没有理由期望这个定义能够成功编译,而且这个问题将来不会帮助其他任何人。