一个类可以继承抽象类和CRTP类吗?或者,如果我从CRTP类继承,那么我继承的所有类都必须使用CRTP吗?
答案 0 :(得分:3)
类是否可以从抽象类和CRTP类继承?
为什么不呢?是的,它可以。
或者,如果我从CRTP类继承,我继承的所有类都必须使用CRTP吗?
为什么这样?不,他们不必。
答案 1 :(得分:2)
是
class AbstractBase {
public:
virtual ~AbstractBase() {}
virtual void Function() = 0;
};
template<class T>
class CRTPBase {
public:
void Function2() {}
};
class Derived : public AbstractBase, public CRTPBase<Derived> {
public:
void Function() {}
};
int main () {
Derived d;
d.Function();
d.Function2();
}