我有一个C++类声明了一个单一的静态成员。整个类都包含在一个头文件中,我宁愿避免创建一个.cpp文件来简单地包含静态成员定义。我一直试图使用静态关键字(在C的意义上)和匿名命名空间,这两个应该给头文件静态链接(asfaik)声明的变量,但都没有办法工作,任何人都可以给我一个解决方案问题?声明的静态成员与静态链接
struct ServiceType {} ;
struct Transport
{
static ServiceType service ;
};
//error: definition of ‘Transport::service’ is not in namespace enclosing ‘Transport’
//namespace { ServiceType Transport::service ; }
//error: ‘static’ may not be used when defining a static data member
//static ServiceType Transport::service ;
'static'值不一定意味着静态链接。它恰好是相同的关键字,但其含义完全不同。你不能有静态链接的成员。所以你想要的是不可能的。你*有*在某处定义符号。没有办法绕过它。 – 2013-03-07 13:16:21
我理解静态关键字的多种用法之间的区别 – 2013-03-07 13:32:24