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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OLLEGATOR
Linux-оид
116 / 65 / 3
Регистрация: 15.02.2011
Сообщений: 353
#1

class выводящий эллементы другого класса... - C++

30.10.2011, 21:41. Просмотров 284. Ответов 5
Метки нет (Все метки)

Сделать класс GROUP_OBJECT который будит выводить эллементы других классов на экран...
помогите доделать один класс...

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
 
class ELLEMENTS{ // Базовый класс...
 
protected:
 
    int x;
    int y;
    char color[50];
    vector <ELLEMENTS *> child;
 
public:
 
    ELLEMENTS(int xx, int yy, char *s){
        Set_X(xx);
        Set_Y(yy);
        Set_Color(s);
    }
 
    virtual ~ELLEMENTS(){}
 
    int Get_X(){ return x; }
    int Get_Y(){ return y; }
    char *Get_Color(){ return color; }
 
    void Set_X(int xx){ x=xx; }
    void Set_Y(int yy){ y=yy; }
    void Set_Color(char *s){ strcpy(color,s); }
 
    void Add_Child(ELLEMENTS *p){ // Добавить ребёнка...
        child.push_back(p);
    }
 
    void Remove_Child(){ // Удалить ребёнка...
        child.pop_back();
    }
 
    virtual void Draw()=0; // У каждого своё имя...
 
 
 
};
 
class CIRCLE: public ELLEMENTS{ // Круг...
 
protected:
 
    int radius;
 
public:
 
    CIRCLE(int xx, int yy, char *s,int rad):ELLEMENTS(xx,yy,s){
        Set_Radius(rad);
    }
 
    ~CIRCLE(){}
 
    int Get_Radius(){ return radius; }
 
    void Set_Radius(int rad){ radius=rad; }
 
    void Draw(){ cout<<"Я есть круг!\n"; }
 
};
 
class RECTANGLE: public ELLEMENTS{ // Прямоугольник...
 
protected:
 
    int a;
    int b;
 
public:
 
    RECTANGLE(int xx, int yy, char *s, int aa, int bb):ELLEMENTS(xx,yy,s){
        Set_A(aa);
        Set_B(bb);
    }
 
    ~RECTANGLE(){}
 
    int Get_A(){ return a; }
    int Get_B(){ return b; }
 
    void Set_A(int aa){ a=aa; }
    void Set_B(int bb){ b=bb; }
 
    void Draw(){ cout<<"Я есть прямоугольник!\n"; }
 
};
 
class TRIANGLE: public ELLEMENTS{ // Треугольник...
 
protected:
 
    int a;
    int b;
    int c;
 
public:
 
    TRIANGLE(int xx, int yy, char *s, int aa, int bb, int cc):ELLEMENTS(xx,yy,s){
        Set_A(aa);
        Set_B(bb);
        Set_C(cc);
    }
 
    ~TRIANGLE(){}
 
    int Get_A(){ return a; }
    int Get_B(){ return b; }
    int Get_C(){ return c; }
 
    void Set_A(int aa){ a=aa; }
    void Set_B(int bb){ b=bb; }
    void Set_C(int cc){ c=cc; }
 
    void Draw(){ cout<<"Я есть треугольник!\n"; }
 
};
 
[COLOR="Red"]class GROUP_OBJECT: public ELLEMENTS{ // Выводит все эллементы на экран...
 
public:
 
    void Draw_Childs(){ // Показать детей...
 
        vector<ELLEMENTS*>::iterator i;
 
        for(i=child.begin();i!=child.end();i++){
            Draw();
        }
 
    }
 
};[/COLOR]
main.cpp

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
#include "All.h"
 
int main()
{
 
    CIRCLE a(10,20,"black",1);
    a.Add_Child(new CIRCLE(1,2,"s",3));
    a.Add_Child(new CIRCLE(1,4,"q",5));
    a.Add_Child(new CIRCLE(1,5,"x",4));
    a.Add_Child(new CIRCLE(1,8,"n",1));
 
    RECTANGLE b(50,60,"neon",1,2);
    b.Add_Child(new RECTANGLE(1,2,"c",45,56));
    b.Add_Child(new RECTANGLE(1,3,"co",45,56));
 
   [COLOR="red"] GROUP_OBJECT *p; 
 
    p=&a;
 
    p->Draw_Childs();
[/COLOR]
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 21:41     class выводящий эллементы другого класса...
Посмотрите здесь:

Написать для класса деструктор, выводящий надпись - C++
Подскажите пожалуйста, как написать в 71 строке деструктор, так, чтобы при компиляции выводилось на экран &quot;Destruktor rabotaet&quot;? ...

Как получить private переменную класса, функцей членом другого класса - C++
Игра змейка: Есть класс поле в котором содержится размеры поля: class field { private: int FIELD_START; int...

Приём константных векторов класса, как аргументов в методе другого класса - C++
Есть такой класс: class Order { private: int numberOrder; map &lt;string, int&gt; catalogDish; double totalCost; public: ...

Создание объекта класса с полем являющимся объектом другого класса - C++
Bill a; cin&gt;&gt;a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

Использование в качестве поля класса указатель на объект другого класса - C++
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс person (человек) и car (модель машины). ...

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Массив объектов класса как член другого класса - C++
Здравствуйте. У меня тут возникла проблемка #include &quot;main.h&quot; class player { public: player(); player(char*); ...

Как дополнить функционал класса из другого класса - C++
Вот допустим, написал я класс TMatrix (матрица), можно добавлять строки, столбцы, есть capacity и прочие ништяки. Всё отлажено и отлично...

Видимость класса относительно другого класса - C++
class A;//Это просто поставили класс А в видимость класса В? class B { A a; }; class A{}; Я просто, трактовал это...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TwiX
60 / 60 / 1
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 02:34     class выводящий эллементы другого класса... #2
C++
1
2
3
for(i=child.begin();i!=child.end();i++){
            Draw();
        }
Почему так?

Так мб?
C++
1
2
3
for(i=child.begin();i!=child.end();i++){
            (*i)->Draw();
        }
Добавлено через 15 минут
Upd:
Плюс приведение типов забыли:
C++
1
p=( GROUP_OBJECT *)&a;
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
31.10.2011, 03:18     class выводящий эллементы другого класса... #3
что-то не вижу ни одного delete
TwiX
60 / 60 / 1
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 03:27     class выводящий эллементы другого класса... #4
Цитата Сообщение от Jupiter Посмотреть сообщение
что-то не вижу ни одного delete
Так там ничего динамично и не создаётся =\
Bers
Заблокирован
31.10.2011, 03:50     class выводящий эллементы другого класса... #5
Цитата Сообщение от TwiX Посмотреть сообщение
Так там ничего динамично и не создаётся =\
Вам данная запись ни о чем не намекает?

Цитата Сообщение от OLLEGATOR Посмотреть сообщение
a.Add_Child(new CIRCLE(1,4,"q",5));
Добавлено через 1 минуту
OLLEGATOR, объясните мне одну вещь: Где у вас в коде происходит освобождения захваченной памяти?

Утечки памяти вас не смущают?

Добавлено через 7 минут
Вопрос: какую роль выполняет класс "группа объектов" в архитектуре?
И почему в вашем случае она является потомком ELLEMENTS ?



C++
1
2
3
4
5
6
7
8
9
10
11
class GROUP_OBJECT: public ELLEMENTS{ // Выводит все эллементы на экран...
public:
void Draw_Childs() // Показать детей...
{ 
      vector<ELLEMENTS*>::iterator i;
      for(i=child.begin();i!=child.end();i++)
      {
           (*i)->Draw(); //подправил
      }
 
};
Добавлено через 6 минут
если допустим, роль группы элементов - хранение и менеджмент группы объектов, то почему всякие
CIRCLE так же могут хранить группы разных объектов?

Возможно у вас путаница в ролях классов. Кто что должен, и за что отвечает.
TwiX
60 / 60 / 1
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 03:57     class выводящий эллементы другого класса... #6
Извиняюсь... Не заметил "new"
всякие
CIRCLE так же могут хранить группы разных объектов?
это меня тоже сильно смутило
Yandex
Объявления
31.10.2011, 03:57     class выводящий эллементы другого класса...
Ответ Создать тему
Опции темы

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