Dzzirt / OOP

0 stars 0 forks source link

Замечания по редактору фигур #5

Closed alexey-malov closed 8 years ago

alexey-malov commented 8 years ago
class Command
{
public:
    virtual void execute() = 0;
    virtual void undo() = 0;
};

В C++ деструктор полиморфного (содержащего виртуальные методы или выступающего в роли базового) класса/структуры должен быть объявлен виртуальным http://cpp-reference.ru/articles/virtual-destructor/

alexey-malov commented 8 years ago

В MVC классы модели и представления должны быть разделены. В твоем же случае они совмещены воедино.

Т.е. правильно так:

alexey-malov commented 8 years ago

При Undo и последующем Redo добавлении команды добавления фигуры, объект размещается в случайных координатах, а не в тех, где был изначально добавлен

alexey-malov commented 8 years ago
void Workspace::RemoveSelectedShape()
{
    for (size_t i = 0; i < shapes.size(); i++)
    {
        if (shapes[i].IsSelect())
        {
            shapes.erase(shapes.begin() + i);
        }
        break;
    }
}

цикл выполнится 0 или 1 раз. на кой черт он нужен?