RattleInGlasses / ps_oop

0 stars 0 forks source link

Замечания по программе Family #19

Open alexey-malov opened 8 years ago

alexey-malov commented 8 years ago
class CGenderedNamedCreature
{
public:
    enum class Gender
    {
        MALE,
        FEMALE
    };
    virtual ~CGenderedNamedCreature();
};

Gender лучше вынести за пределы класса, будет проще его использовать Деструктор с пустым телом можно объявить в одном классе (в одну строку)

alexey-malov commented 8 years ago

Для более простого объявления животных можно применить способ навешивания тэгов на шаблонные классы:

typedef <typename Tag>
class CAnimalT : public CGenderedNamedCreature
{
};

struct TagCat{};

typedef CAnimalT<TagCat> CCat;

struct TagDog{};

typedef CAnimalT<TagDog> CDog;

Для ознакомления советую посмотреть boost.multi_index