【发布时间】:2012-02-15 22:15:18
【问题描述】:
我有以下情况
namespace A {
//...
class A {
public:
static void foo();
}
//...
} //namespace A
当我尝试使用 A::foo() 从另一个类访问 foo() 时,编译器会抱怨“foo 不是 A 的成员”,而当我尝试使用 A::A::foo() 时,它会报错抱怨未解决的外部问题。
我该如何解决这个问题?我认为在同一个命名空间内创建一个类非常愚蠢并且会导致混乱,但我不是代码的作者,更改命名空间或类名会造成太多麻烦
【问题讨论】:
-
unresolved external 的错误意味着你没有实现
A::A::foo()而不是语法错误——事实上,编译器已经找到了你想要的!你在foo的实现中实现、编译、链接了吗? -
这里是一个使用
A::A::foo()的例子,在键盘上实现foo:codepad.org/3muVCfgM
标签: c++ namespaces