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

Управляющий класс с подклассами - C++

Восстановить пароль Регистрация
 
DjaFaR
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 24
20.05.2013, 16:06     Управляющий класс с подклассами #1
Я не понимаю как сделать один класс, в котором будет выбор какой из подклассов использовать.
Конкретная задача: создать растровый графический редактор на основе winbgi
Мне нужно чтобы они отдельно для себя рисовали область нажатия и при выборе одного из них рисовать можно было этим подклассом.
Вот мои наброски, подскажите как будет лучше.
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
class Menu
{
public:
    int c,fc,mode;
public:
    Menu(int c,int fc):c(c),fc(fc),mode(0){};
    ~Menu(){cleardevice();};
    void createmenu();
    void choosedraw(int,int);
    void show();
};
 
class Rectangle :
    public Menu
{
protected:
    void draw();
public:
    Rectangle(void);
    ~Rectangle(void);
    void createmenu();
};
 
class Line :
    public Menu
{
protected:
    void draw();
public:
    Line(void);
    ~Line(void);
    void createmenu();
};
 
class Bar :
    public Menu
{
protected:
    void draw();
public:
    Bar(void);
    ~Bar(void);
    void createmenu();
};
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 16:06     Управляющий класс с подклассами
Посмотрите здесь:

C++ управляющий символ, обратный "\n"
Как преобразовать указатель на класс к указателю на асбтрактный класс? C++
Указатели в базовом классе на базовый класс и производный класс C++
C++ С++ класс (создайте класс с именем Complex для выполнения в арифмитических операий с комплексными числами))
Класс, для полей которого нужно использовать класс C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DjaFaR
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 24
20.05.2013, 22:38  [ТС]     Управляющий класс с подклассами #2
Вот подправил немного но все равно что то не так(
C++ (Qt)
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
#include "winbgim.h"
#include "graphics.h"
 
class Menu
{
public:
    int c,fc,mode;
protected:
    virtual void draw();
public:
    Menu(int c,int fc):c(c),fc(fc),mode(0){};
    ~Menu(){cleardevice();};
    void createmenu();
    void choosedraw(int,int);
    void show();
};
 
class Rectangle :
    public Menu
{
protected:
    int x,y;
    void draw();
public:
    Rectangle(int x,int y,int c,int fc, int mode):x(mousex()),y(mousey()),Menu(c,fc,mode){};
    ~Rectangle(){cleardevice();};
    void createmenu();
};
 
class Line :
    public Menu
{
protected:
    void draw();
public:
    Line(void);
    ~Line(void);
    void createmenu();
};
 
class Bar :
    public Menu
{
protected:
    void draw();
public:
    Bar(void);
    ~Bar(void);
    void createmenu();
};
Добавлено через 4 часа 20 минут
ayyy
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
20.05.2013, 23:19     Управляющий класс с подклассами #3
Шо ау?
В таких задачах классически используют двойную диспетчеризацию.

Добавлено через 3 минуты
И паттерн command.
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
20.05.2013, 23:24     Управляющий класс с подклассами #4
Почитайте про полиморфизм.
Yandex
Объявления
20.05.2013, 23:24     Управляющий класс с подклассами
Ответ Создать тему
Опции темы

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