Conversation
| double CalcSquare() override; | ||
|
|
||
| void Side(const unsigned int in_uiSide) { uiSide__ = in_uiSide; } | ||
| unsigned int Side() { return uiSide__; } |
There was a problem hiding this comment.
eсли метод ничего не меняет, может стоит сделать его const
There was a problem hiding this comment.
ага. Надо завести эту привычку :)
| RectSides &operator=(const RectSides &in_Sides) { | ||
| uiSideOne = in_Sides.uiSideOne; | ||
| uiSideTwo = in_Sides.uiSideTwo; | ||
| return *this; |
There was a problem hiding this comment.
а для чего тут перегрузка присваивания? ведь структуры одного типа и так можно присваивать друг другу)
There was a problem hiding this comment.
больше, чтоб поюзать перегрузку операторов.
| RectSides Sides() { return Sides__; } | ||
|
|
||
| private: | ||
| RectSides Sides__{}; |
There was a problem hiding this comment.
это просто мнение, но по моему тут не нужна структура, ведь мы и так инкапсулируем поля в классе. А так матрешка получается
There was a problem hiding this comment.
конечно, можно обойтись и без структуры. Мне понравилась идея передавать все стороны как объект.
| } | ||
|
|
||
| double Square::CalcSquare() { | ||
| double dArea{static_cast<double>(uiSide__) * |
There was a problem hiding this comment.
а для чего тут cast к double и возвращаемое значение double? ведь сторона квадрата - целое число. Можно возвращать long long
There was a problem hiding this comment.
в случаях других фигур результат может быть дробным. Поэтому в базовом классе был принят double, а следовательно и в наследниках.
| #include <cmath> | ||
| #include <iostream> | ||
|
|
||
| class Shape { |
There was a problem hiding this comment.
если ошибаюсь, Николай меня поправит, но если мы собираемся работать через указатель на базовый класс и виртуальные функции, то для корректного разрушения объеков в базовом классе нужно обьявить виртуалный деструктор.
There was a problem hiding this comment.
да, наверное стоит его написать, хотя бы для того, чтоб не забыть впоследствии. В моем случае нет захвата ресурсов, поэтому я деструктор не указал.
| @@ -0,0 +1,141 @@ | |||
| // Реализовать переопределение метода базового класса в | |||
| //производных классах применив виртуальные функциии | |||
There was a problem hiding this comment.
Добрый вечер! по многочисленным просьбам решил опробовать себя в новой роли) поэтому за качество ревью прошу понять и простить)
There was a problem hiding this comment.
Отлично! Супер! Спасибо за ревью!
No description provided.