使用 CRTP 进行选择性静态成员继承
Selective static member inheritance with CRTP
所以我有这个使用 CRTP 的类层次结构:
template <class T>
class A {
static Object x;
static OtherObject y;
}
class B : public A<B> {
}
class C : public A<C> {
}
最初的想法是 B 和 C 不共享 x 和 y 的实例,因为A<B>
和A<C>
被认为是单独的类。但是假设为了节省资源,确定"x"应该是 B 和 C 共享的单例实例,而仍然为每个派生类创建"y"的实例。有没有办法做到这一点?
提前谢谢。
可以使类模板派生自另一个类。 在基类中定义x
。
class ABase {
static Object x;
};
template <class T>
class A : public ABase {
static OtherObject y;
}
class B : public A<B> {
}
class C : public A<C> {
}
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 如何在C++中使用非静态成员函数作为回调函数
- (C++)为什么静态成员可以在初始化之前使用
- 类的全局对象和静态成员
- 在作为静态成员包含在另一个类中的类的构造函数中使用 cout
- 模板化类中静态成员的延迟初始化
- 使用静态成员声明类时遇到问题
- C++:是否可以使用非静态成员变量模板?
- 如何在复杂继承中访问静态成员变量
- 使用 CRTP 进行选择性静态成员继承
- 模板,继承,静态成员增量
- 在C 中,静态成员函数是否继承了?如果是,为什么没有出现歧义错误
- 如何继承静态成员
- 静态成员继承和保护
- C++-Do派生类继承基类的静态成员
- 从外部访问静态成员并通过继承 c++ 访问静态成员
- 让基类的方法使用继承类的静态成员变量...可能?
- 访问2个继承类的静态成员
- 从继承的类实例调用静态成员
- 模板类:未继承静态成员