模板类的每个实例都复制了所有静态成员。如果我想要一个对所有实例只存在一次的静态成员,我应该怎么做?在类模板之外使用普通的静态字段?会工作,但似乎不雅,因为没有更多与模板类的关联。有没有办法以某种方式将这种独特的静态成员与模板类相关联?
最佳答案
没有;每个模板类都是一个完全独立的对象。
你可以做的是用静态成员创建一个共同的祖先类:
class Parent
{
public:
static int commonStatic;
};
template <typename T>
class MyTempl : public Parent
{
static int nonSharedStatic;
};
关于具有唯一静态成员的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092543/