Давайте начнем с простого класса в C ++:
class aClass { bool b; aClass(bool x){b=x;} };
Можно ли ввести по умолчанию 2 новых типа stateTrue и stateFalse, так что если я сделаю:до:
aClass variable(true);
?
Альтернативой наследования может быть aClass a template:
aClass
template
template <bool T> class aClass { public: bool b; aClass(): b(T) {} }; typedef aClass<true> stateTrue; typedef aClass<false> stateFalse;
Ближайшим будет
class stateTrue : // new type needed, not just a new name public aClass { // but obviously can be converted to aClass public: stateTrue() : aClass(true) { } // Default ctor sets aClass base to true };
Нет, потому что это экземпляр, а не тип.
Вы можете получить:
class stateTrue: public aClass { public: stateTrue() : aClass(true) {} };