Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Aelin
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
07.07.2010, 20:40     Полиморфизм и иерархия классов. #1
Очень надеюсь на Вашу помощь.
На экране имеются круг и точка, которые двигаются при нажатии клавиш-стрелок (для круга) или 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 используются для изменения цвета и должны быть виртуальными. В общем, я запуталась.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2010, 20:40     Полиморфизм и иерархия классов.
Посмотрите здесь:

C++ иерархия классов
C++ иерархия классов
Иерархия классов .... C++
C++ Иерархия классов
C++ иерархия классов
иерархия классов C++
C++ иерархия классов
Иерархия классов С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru