Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aelin
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
1

Полиморфизм и иерархия классов.

07.07.2010, 20:40. Просмотров 426. Ответов 0
Метки нет (Все метки)

Очень надеюсь на Вашу помощь.
На экране имеются круг и точка, которые двигаются при нажатии клавиш-стрелок (для круга) или wasd(для точки). Может двигаться либо точка, либо круг. При нажатие определенной клавише точка или круг меняют свой цвет. Нужна помощь в создании классов.
C++
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream.h>
   #include<graphics.h>
   #include<conio.h>
   enum Boolean{false, true};
   class Location
       {
    public: int x,y;
    public:
    Location(int Initx, int Inity){x=Initx; y=Inity;}
    int Getx(){return x;}
    int Gety(){return y;}
       };
   class Point:public Location
       {
    protected:Boolean vis;
    public:Point(int Initx, int Inity);
        int color();
    virtual void show();
    virtual void hide();
    void MoveTo(int NewX, int NewY){Hide();x=NewX;y=NewY;show();}};
    Point::Point(int Initx, int Inity)
    : Location(Initx, Inity)
    {vis=false;}  
         int Point::color()
      {
       int i=0,col;
       for(;i<=15;i++)
         {col=i;}
       return(col);
      }
  class circle:public Point
    {
     public:
       void show()
       {vis=true; arc(x,y,0,360,r);}      //  dlya kruga
       void hide()
       {vis=false;
       setcolor(BLACK);
       arc(x,y,0,360,r);}
       void MoveTo(int NewX, int NewY)
         {if (vis==true){hide(); x=NewX, y=NewY;
         show();}
          else{x=NewX,y=NewY;show();}}
       circle(int R)
       :Point(){circle::r=R;}
     int r;
     void show();
         void MoveTo(int NewX, int NewY)
         {hide();x=NewX, y=NewY;
          show(void *d);}};
class pixel:public Point
    {
     public:
     pixel
     void show();
     void hide();
     void MoveTo(int NewX, int NewY)
         {hide(); x=NewX, y=NewY;
         show();}};
Я знаю, что в классах circle и pixel нужно вызывать конструкторы базовых классов, но не получается. Функции show и hide используются для изменения цвета и должны быть виртуальными. В общем, я запуталась.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2010, 20:40
Ответы с готовыми решениями:

Полиморфизм. Иерархия наследования
Привет! У меня вопрос по полиморфизму. Допустим, есть класс Shape он может быть...

Иерархия классов
Доброво времини суток! Нужна помощ, я не могу понять что я делаю не так в...

иерархия классов
Разработать иерархию классов, описывающих следующие понятия Растение- Дерево ,...

иерархия классов
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;math.h&gt; using namespace std;...

Иерархия классов ....
Добрый вечер Всем !!! ))) У меня возникли некоторые трудности с написанием...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2010, 20:40

иерархия классов
Создайте иерархию классов Point – Circle – Cylinder. Класс Point (точка) должен...

иерархия классов
подскажите как написать иерархию классов описывающих элементы графического...

Иерархия классов
Добрый вечер. Такое задание. Реализовать иерархию понятий &quot;Студент&quot; ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru