Стоит ли делать в таком случае базовый класс и наследоваться от него?

В общем есть несколько классов форм на Qt типа:
//Главное окно
class MainWindow : public QMainWindow
{
//
private:
//
int m, n;
double **data, scaleX, scaleY;
}

//И много других форм, открываемых из главной формы - MainWindow
class OtherWindow : public QMainWindow
{
//
private:
//
int m, n;
double **data, scaleX, scaleY;
}

Как видно, у них есть общие поля - int m, n; double **data, scaleX, scaleY;, стоит ли делать базовый класс (с точки зрения ООПа), от которого будут наследоваться эти поля или нет? Что скажете?
  • Вопрос задан
  • 550 просмотров
Решения вопроса 4
Adamos
@Adamos
Нет, так делать не стоит.
Вы таким наследованием нарушаете L в SOLID.
Ответ написан
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Если даные только для внутреннего пользования, то намного лучше создать структуру Data (имя можно менее общее) или две структуры, если данные нельзя скомпоновать по смыслу в одну структуру.
Ну и наследовать все классы от QMainWindow это не очень правильно. Т.к. по смыслу в большинстве случаев главное окно одно. Этот класс отличается от обычного QWidget наличием дополнителных компонентов, добавленых по умолчанию (тулбар, например).
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
Если три поля — единственное, что их связывает, то смысла в наследовании мало. Может быть есть смысл создать отдельный класс двумерного массива и использовать его?
Ответ написан
Rou1997
@Rou1997
Базовый, конечно не стоит, сделайте иначе, создайте свой тип (класс или структуру) с этими полями и используйте везде вместо этих переменных.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Сделайте protected в базовом MainWindow, и эти поля будут наследоваться. И зачем вообще отдельный класс для трёх членов?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы