gex*_*ide 2 c++ templates static-members
模板类的每个实例都会复制所有静态成员。如果我想要一个对于所有实例仅存在一次的静态成员,我该怎么办?在类模板之外使用普通的静态字段?可以,但看起来不优雅,因为与模板类不再有关联。有没有办法以某种方式将这种独特的静态成员与模板类相关联?
不; 每个模板类都是一个完全独立的对象。
您可以做的是使用静态成员创建一个共同的祖先类:
class Parent
{
public:
static int commonStatic;
};
template <typename T>
class MyTempl : public Parent
{
static int nonSharedStatic;
};
Run Code Online (Sandbox Code Playgroud)