Когда вы используете каждое наследство?
class Base{};
class Derived: protected Base{};
class Derived2: public Base{};
Мой случай:
У меня есть класс с именем Snapshot, который содержит только методы GetXXX. Это легкая классификация, используемая для хранения текущего состояния класса Value. Я также использую его для восстановления, сохраняя экземпляры этого класса еще долго после исчезновения экземпляра класса Value. Класс Manager, обрабатывает экземпляры класса Snapshot. Позвольте мне показать вам код:
class Snapshot
{
public:
Snapshot (const Snapshot * snap)
{
_x=snap->_x;
_y=snap->_y;
_z=snap->_z;
}
Snapshot (){_x=_y=_z=0;}
int GetX(){return _x;}
int GetY(){return _y;}
int GetZ(){return _z;}
~virtual Snapshot(){}
protected:
int _x,_y,_z;
};
class Value:public Snapshot
{
/*Very heavy class with a lot of components used to calculate _x, _y, _z*/
};
class Manager
{
public:
void Process( const Snapshot * snap)
{
}
};
Как вы относитесь к этому дизайну? Какие есть альтернативы?
Спасибо
Решения и проблемы