У меня есть следующие определения классов:
// A TileBase contains a deceleration for game events that will be present in
// Static and Dynamic tiles
class TileBase
// To use tiles in your game, create a tile base for Tile to inherit from, then
// create game-specific tiles as derivitives of StaticTile or DynamicTile
template<typename aTileBase> class Tile : public aTileBase
Классы StaticTile
и DynamicTile
являются производными от Tile
. Цель состоит в том, чтобы методы, объявленные в TileBase
, присутствовали во всех производных классах Tile
через динамическое приведение.
Я хотел бы ограничить определение шаблона Tile
только тем типом данных, которые получены из TileBase
. Есть ли способ сделать это без использования динамического приведения и утверждения во время выполнения?