クラスは抽象クラスと CRTP クラスの両方から継承できますか? または、CRTP クラスから継承する場合、継承元のすべてのクラスは CRTP を使用する必要がありますか?
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 に答える