Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно организовать взаимодействие классов? / 5 сообщений из 5, страница 1 из 1
21.02.2005, 00:34
    #32925201
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно организовать взаимодействие классов?
У меня есть класс ФИГУРА. Этот класс использует другой класс РИСОВАНИЕ для своей прорисовки. От каждого из этих классов произведены с помощью наследования классы, которые описывают более частные случаи, например КВАДРАТ, или КРУГ. Соответственно и для прорисовки. Уменя есть класс ФАБРИКА, которая создает необходимую связку классов и передает ссылку на созданный объект, напрмер КВАДРАТ, как ФИГУРУ в основную программу. Основная программа вызывает метод НАРИСОВАТЬ, который вызывает метод рисования класса РИСОВАНИЕ, тем самы вызывая объект нарисовать себя соответствующим образом. Надеюсь, шаблон понятен. Так вот, мне не понятно следующее: как используемый объект РИСОВАНИЕ узнает о том, ЧТО ему нужно будет отрисовать? КВАДРАТ рисуется так, КРУГ — так, кроме этого у каждого из них есть дополнительные поля, которые тоже нуждаются в прорисовке и эти поля не одинаковы. Каким образом передать ПРАВИЛЬНО информацию об этом в класс РИСОВАНИЕ? Или нужна какая-то иная структура иерархии?
...
Рейтинг: 0 / 0
21.02.2005, 03:51
    #32925242
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно организовать взаимодействие классов?
ну, у тебя КВАДРАТ и КРУГ это наследники от ФИГУРА?
если так, то метод РИСОВАНИЕ делай виртуальным. а в ФИГУРА - чисто виртуальным.
тогда при вызове ФИГУРА::РИСОВАНИЕ если эта фигура есть КВАДРАТ вызовется метод именно КВАДРАТ.
при этом ты не сможешь создать класс без метода РИСОВАНИЕ...

другое дело, верно ли, то что я написал, для твоего языка...
...
Рейтинг: 0 / 0
21.02.2005, 03:52
    #32925243
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно организовать взаимодействие классов?
я попутал...
у тебя РИСОВАНИЕ это класс.
а ты еще сделай метод Рисование у класса ФИГУРА и далее по моему тексту
...
Рейтинг: 0 / 0
21.02.2005, 10:22
    #32925482
AlexG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно организовать взаимодействие классов?
Так все и происходит. Но мне не понятно, как рисовальщик узнает что ему прорисовывать? Или при создании рисовальщика нужно передовать ссылку на рисуемый объект, а каждый вид рисовальщика сам знает уже какие свойства, поля и методы нужно нарисовать?...
...
Рейтинг: 0 / 0
21.02.2005, 14:14
    #32926174
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно организовать взаимодействие классов?
как-то путанно.
рисовальщики всякие...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
class SHAPE
{
 public:
  virtual void draw(int x, int y)= 0 ;
};

class RECTANGLE:public SHAPE
{
 public:
  virtual void draw(int x, int y)
  {
    //some drawing operations here
  };
};

class BOX:public RECTABGLE
{
 public:
  virtual void draw(int x, int y)
  {
    RECTANGLE::draw(x,y);
    //some another drawing
  };
};

class CIRCLE:publc SHAPE
{
 public:
  virtual void draw(int x, int y)
  {
    //some drawing operations here
  };
}
etc
вот что я имел в виду
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно организовать взаимодействие классов? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]