Обертывание семантического типа C ++

У меня есть тип данных, например class Vector3 . Теперь мне нужно создать несколько классов с тем же интерфейсом, что и Vector3 , но с семантикой более высокого уровня (например: Position , Velocity ). Использование typedef недостаточно, потому что мне нужно, чтобы эти типы были разными, чтобы их можно было использовать для перегрузки. В C ++ 0x я, вероятно, мог бы использовать наследование конструктора:

struct Position: public Vector3 {
    using Vector3::Vector3;
};

Могут ли с этим быть проблемы? Есть ли лучший способ сделать это? Можно ли сделать это без использования функций C ++ 0x и без явного написания всех конструкторов Vector3 ?

6
задан Juraj Blaho 17 June 2011 в 08:08
поделиться