我有一个 C++ 类,它声明了一个静态成员。整个类包含在一个头文件中,我宁愿避免创建一个 .cpp 文件只是为了包含静态成员定义。我一直在尝试使用 static 关键字(在 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 ;