C++には次のクラス階層があります。
class Base {
virtual void apply() = 0;
};
class Derived : public Base {
virtual void apply() {
// implementation here that uses derived_specialty
}
virtual void derived_specialty() = 0;
};
class Implementation : public Derived {
virtual void derived_specialty() {
// implementation
}
};
実装レベルのクラスがapplyの独自の実装を提供せず、derived_specialtyのみを実装することを保証したいと思います。Derivedから継承するクラスがapplyを実装しないことを保証する方法はありますか?そのため、Derived :: apply実装が使用されますか?私の理解では、C ++では、Baseクラスで仮想化されたメソッドは、継承階層のずっと下まで仮想化されていますが、C ++で達成するためのトリックがある場合は、それらについて聞きたいと思います。
私はいつもC++で許可されていることに驚いているので、尋ねる価値があると思いました。:)