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

Возможно ли объекты и потомки этих объектов поместить в один и тот же динамический массив? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при удаление из бинарного файла http://www.cyberforum.ru/cpp-beginners/thread1182333.html
Нужно удалить из бинарного файла, содержащего информацию о студентах, определённого человека. Но когда выполняется процедура, выдаёт: Необработанное исключение в "0x509bad54 (msvcp100d.dll)" в "2.exe": 0xC0000005: Нарушение прав доступа при записи "0xfeeefeee". Где ошибка? void delete_data() { students del; students look; cout<<"Please, enter the name of file:"; string filename;...
C++ двумерный массив Задано массивы чисел A(M,N),B(L). Из кратных 3-м элементов создать массив C(Y,Y)(Y=>2). Значение Y выбрать таким, чтобы массив С имел максимально возможные размеры))) http://www.cyberforum.ru/cpp-beginners/thread1182324.html
В последовательностях положительных чисел ограничить снизу значение тех элементов которые меньше среднего C++
Во всех последовательностях позитивных чисел ограничить снизу значение тех элементов, значения которых меньше среднего для этой последовательности.
Перед каждым четным числом разместить значение равное половине этого числа C++
Условие: Задача на двумерные списки. Разместить в очереди 20 целых чисел, после этого перед каждым парным числом, разместить значение которое равняется половине этого числа. Решение: Нужна помощь в реализации алгоритма, т.е. у меня не получается сделать так что бы определяло парное число или нет. while (PtTemp != NULL) if ((PtTemp -> value) %2) ??? Выходит что-то не понятное, возможно...
C++ В матрице случайных чисел найти номера строк, элементы которых упорядочены по возрастанию. http://www.cyberforum.ru/cpp-beginners/thread1182264.html
2. Дана целочисленная квадратная матрица порядка n. Матрица сформирована из случайных чисел в диапазоне от –10 до 10. Найти номера строк, элементы которых упорядочены по возрастанию.
C++ Вычислить максимальный элемент массива до первого нулевого и сумму элементов до последнего положительного. В одномерном массиве, состоящем из n вещественных элементов вычислить: 1. Максимальный элемент массива, расположенный до первого нулевого. 2. Сумму элементов массива расположенных до последнего положительного элемента. подробнее

Показать сообщение отдельно
Inferiym
1 / 7 / 3
Регистрация: 20.12.2011
Сообщений: 58
20.05.2014, 18:11  [ТС]     Возможно ли объекты и потомки этих объектов поместить в один и тот же динамический массив?
у меня есть масив
C++
1
skydiver **mas=new skydiver*[40];
добавлять новий елемент в него
C++
1
2
3
 mas[0]=new skydiver("Михайло",200,500,0,0);all++;
mas[1]=new skydiver("Олександр",400,500,0,0);all++;
mas[2]=new skydiver("Тимур",700,280,400,0);all++;
Клас обэктов очень сложний
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
#pragma once
#include "StdAfx.h"             
 
class skydiver
    {
    friend class land;
    private:
        int n;                  //Номер
        POINT lastpoz;          //Координати останньої позиції для затирання
        POINT poz;              //Координати позиції
        POINT v;                //Вектор руху (для таймера)
        char he_is[20];         //Ім'я
        bool select;            //Індекатор виділення
    public:
        //Конструктор з параметрами
        skydiver (char *_he_is,int x,int y,int xv,int yv)
        {
            strcpy(this->he_is,_he_is);
            poz.x=lastpoz.x=x;
            poz.y=lastpoz.y=y;
            v.x=xv;
            v.y=yv;
            select=false;
        }
        skydiver()
        {   
            char *_he_is="Новий";
            strcpy(this->he_is,_he_is);
            poz.x=(400+rand () % 600);
            poz.y=(280+rand () % 50);
            v.x=-3;
            v.y=3;
            select=false;
        }
        
        //Методи надання даних
        char* getname()             {return this->he_is;}
        bool sel()                  {return this->select;}
        int getpozx()               {return this->poz.x;}
        int getpozy()               {return this->poz.y;}
        void givepoz(int x,int y)   {lastpoz.x=poz.x; poz.x=x; lastpoz.y=poz.y; poz.y=y;}
        //Mетод інверсії виділення
        void selnow()           {if (select==0) select=1; else select=0;}
        //Підрівняти до краю екрана
        void dobetter(int a)    {lastpoz.y=poz.y; poz.y=a;}
        //Відміна виділення
        void selfalse()         {select=0;}
        //Методи переміщення
        void left() {lastpoz.x=poz.x; poz.x-=4;}
        void right(){lastpoz.x=poz.x; poz.x+=4;}
        void up()   {lastpoz.y=poz.y; poz.y-=4;}
        void down() {lastpoz.y=poz.y; poz.y+=4;}
        void graw(int bottom) 
            {   
                lastpoz.x=poz.x;
                lastpoz.y=poz.y;
                poz.x+=rand () % 4;
                poz.y+=4; 
            }
        //Метод який визначає чи знаходиться курсор на обєкті
        bool inme (int x,int y)
        {
            if ((x>=poz.x)&&(x<=poz.x+100)&&(y>=poz.y)&&(y<=poz.y+150)) return true;
            else return false;
        }
        //Метод зображення обєкту//
        void draw(HDC hdc,HBITMAP jetpack1,HBITMAP jetpack2,
            HBITMAP _jetpack1,HBITMAP _jetpack2,HBITMAP skydiver_new,bool a,bool r_or_l)
        {
        HDC hdcMem=CreateCompatibleDC(hdc);
        // Виділення парашутиста проявляється у тому що у нього з'являється реактивний ранець
        // це цілком виправдовує той факт, що парашутис отримує можливість керувати траекторією
        // і навіть летіти в гору.
        HPEN delpen=CreatePen(PS_SOLID,1,RGB(255,255,255));
        HBRUSH delbrush = CreateSolidBrush (RGB(255,255,255));
        (HPEN)SelectObject(hdc,delpen);
        (HBRUSH)SelectObject(hdc,delbrush);
        Rectangle(hdc,lastpoz.x-4,lastpoz.y-30,lastpoz.x+108,lastpoz.y+154);        ///Очищення зайвого
        
        TextOutA(hdc,poz.x+10,poz.y-22,LPCSTR(this->getname()),strlen(this->getname()));
        if (select){
            if(r_or_l)
                if (a){
                SelectObject(hdcMem,jetpack1);
                BitBlt(hdc,poz.x,poz.y+1,100,150,hdcMem,0,0,SRCCOPY);
                }   
                else{
                SelectObject(hdcMem,jetpack2);
                BitBlt(hdc,poz.x,poz.y-1,100,150,hdcMem,0,0,SRCCOPY);
                }               
        else
                if (a){
                SelectObject(hdcMem,_jetpack1);
                BitBlt(hdc,poz.x,poz.y+1,100,150,hdcMem,0,0,SRCCOPY);
                }   
                else{
                SelectObject(hdcMem,_jetpack2);
                BitBlt(hdc,poz.x,poz.y-1,100,150,hdcMem,0,0,SRCCOPY);
                }
        TextOutA(hdc,poz.x,poz.y,LPCSTR("(Виділений)"),11);
        }
        else{   
        SelectObject(hdcMem,skydiver_new);
        BitBlt(hdc,poz.x,poz.y+1,100,150,hdcMem,0,0,SRCCOPY);       
        }
        DeleteDC(hdcMem);
        };
        
    };
Я хочу создать два класса нащадки и добавить в етот же масив
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru