一个类可以同时继承抽象类和 CRTP 类吗?或者,如果我从 CRTP 类继承,我继承的所有类都必须使用 CRTP?
问问题
163 次
2 回答
3
一个类可以同时继承抽象类和 CRTP 类吗?
为什么不?是的,它可以。
或者,如果我从 CRTP 类继承,我继承的所有类都必须使用 CRTP?
为什么这样?不,他们不必这样做。
于 2013-01-31T22:07:29.920 回答
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();
}
于 2013-01-31T22:28:28.030 回答