我是ac#developctor试图做c ++的事情,我无法理解这里的问题:
namespace myNamespace
{
class Application
{
private:
Application(void);
~Application(void);
// Not copyable
Application(const Application&);
Application& operator= (const Application&);
static Application _instance;
[...]
public:
static Application& current(void);
};
}
Run Code Online (Sandbox Code Playgroud)
(这应该是单身......)
这会导致错误:" 错误LNK2001:未解析的外部符号"private:static class myNamespace :: Application myNamespace :: Application :: _ instance"(?_ instance @ Application @ myNamespace @@ 0V12 @ A) "
是因为我正在使用我在类声明中声明的类吗?
非常感谢!
bil*_*llz 13
您只在Application类中声明 _instance,您需要在.cpp文件中定义它:
namespace myNamespace
{
Application Application::_instance;
}
Run Code Online (Sandbox Code Playgroud)
§9.4.2.2
静态数据成员在其类定义中的声明不是定义,除了cv-qualified void之外可能是不完整的类型.静态数据成员的定义应出现在包含成员类定义的命名空间范围内.在命名空间作用域的定义中,静态数据成员的名称应使用::运算符通过其类名限定.
| 归档时间: |
|
| 查看次数: |
4603 次 |
| 最近记录: |