class Model {};
class AbstractModel {};
class TableModel : public AbstractModel {};
class CustomerModel : public TableModel, public Model {};
class ItemModel : public TableModel, public Model {};
...
要件は、各 TableModel サブクラスが、すべてのサブクラス (CustomerModel、ItemModel、...) 間で共有される一連の機能を提供する必要があることです。TableModel と AbstractModel は不変であるため、一連の機能は Model クラスで定義され、各サブクラス (CustomerModel、ItemModel など) で実装されます。
ここでの問題は、アプリケーションの他の部分が AbstractModel ポインターにしかアクセスできないことです。Model で定義された一連の機能にアクセスするには、このポインターを AbstractModel から Model にキャストする必要があります (各 TableModel サブクラスも Model を実装すると仮定します)。 )。
dynamic_cast を使用せずにそうする可能性はありますか? 同じ機能を提供する別の設計に対する推奨事項はありますか?