реклама на сайте
подробности

 
 
> Разложение на классы
hadrov
сообщение Dec 3 2008, 18:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-11-08
Пользователь №: 41 540



Начинаю изучать ООП и пробую представить нижеследующую таблицу в виде классов/класса.


Например:
Код
const int N = 3;

// описание одной ячейки
class Cell
{
protected:
    int value;    
};

// описание группы из максимумов и минимумов
class Group
{
protected:
    Cell max[N];
    Cell min[N];
};

// описание строки
class Row
{
protected:
    float y[N];
    Group group;
};

// описание таблицы
class Table
{
protected:
    Row rows[N];
};


Для упрощения описал только поля данных. Вопрос состоит в следующем: когда в конкретном случае нужно остановится при разложении классов? ИМХО, уж слишком громоздко вышло. Возможно, класс Group стоит исключить и описывать Cell max[N] и Cell min[N] сразу в классе Row.

А может, вообще, не морочить голову и просто описать вместо классов структуры и запихать их в класс Table. Вот только правильно ли это будет с точки зрения ООП?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hadrov
сообщение Dec 4 2008, 19:06
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-11-08
Пользователь №: 41 540



Пока просветления не наступило. Пойду-ка я еще почитаю Страуструпа.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 5 2008, 06:46
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(hadrov @ Dec 5 2008, 01:06) *
Пока просветления не наступило. Пойду-ка я еще почитаю Страуструпа.

Еще Буча до кучу почитать, очень внятно дядька описывает прикладные вещи по теме.

Цитата(rvk @ Dec 5 2008, 01:30) *
Он имеет ввиду, что все участники вложений являются наследниками одного базового класса.
Хотя я считал что ООП это не то как именно вкладываются классы,
а что главной целью является обьект, экземпляр какого то класса.
Неважно наследуемый он там или нет. И вот доступ к ресурсам обьекта, т.е. данным и функциям идет через экземпляр.

Это объектный стиль программирования (парадигма). Когда объекты, инкапсуляция, абстракция. А ООП - это уже дальше, это - полиморфизм, виртуальные функции (методы), иерархии.

Согласен с amaora в выводе: "По теме, думаю от ООП тут будет мало пользы, ООП надо использовать для упрощения кода а не для усложнения." Особенно по поводу второй фразы цитаты. a14.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 10:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016