Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 18.11.2017
Сообщений: 5
1

Хранилище объектов С++

18.11.2017, 20:23. Показов 5910. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу создать хранилище для точек и отрезков. Классы point и section наследуются от общего предка shape. В хранилище я создаю массив указателей на объекты типа shape. Когда я заполняю этот массив точками, то при работе с элементами массива у меня программа уже работает не с точками, а с shape. В чем у меня проблема?
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
class shape
{
public:
    shape() {
    }
    virtual void show_parametri() {
        cout << " Абстрактная фигура " << endl;
    }
    ~shape() {
        cout << "Фигура удалилась" << endl;
    }
};
class point :public shape {
private:
    int x, y;
public:
    point() {
        x = 0;
        y = 0;
    }
    virtual void show_parametri() {
        cout << " Это точка" << endl;
        cout << " Координаты = " << x << " , " << y << endl;
    }
    ~point() {
        cout << "Точка удалилась" << endl;
    }
};
class Section :public shape {
private:
    point *p1, *p2;
    int x1, x2, y1, y2;
public:
    Section() {
        p1 = new point(0, 0);
        p2 = new point(0, 0);
        x1 = x2 = y1 = y2 = 0;
    }
    ~Section() {
        cout << "Отрезок удалился" << endl;
        delete p1;
        delete p2;
    }
    virtual void show_parametri() {
        cout << " Это отрезок " << endl;
    }
};
class MyStorage {
private:
    shape **objects;
    int size;
public:
    MyStorage(int size)
    {
        this->size = size;
        objects = new shape*[size];
    }
    void SetObject(int index, shape *object) {
        objects[index] = object;
    }
    shape GetObject(int index) {
        return *objects[index];
    }
int main()
{
    setlocale(LC_ALL, "Rus");
    MyStorage storage(10);
    for (int i = 0; i < storage.getCount(); i++) {
        storage.SetObject(i, new point());
    }
    for (int i = 0; i < storage.getCount(); i++) {
        storage.GetObject(i).show_parametri();
    }
    system("pause");
    return 0;
    
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2017, 20:23
Ответы с готовыми решениями:

Динамическое хранилище объектов
Хочу написать динамическое хранилище объектов. Есть у меня два класса ListSections и Section....

Как правильно реализовать метод добавления и удаления объектов в хранилище без перегрузки?
Не знаю как правильно здесь реализовать метод добавления и удаления объектов в хранилище без...

Хранилище для разнообразных объектов
Всем привет! Дали задание создать класс хранилища, который может включать в себя объекты других...

Хранилище файлов и БД
Господа! Помогите пожалуйста выбрать правильное направление)) Сейчас делаю прогу в VS2010, для...

1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.11.2017, 21:58 2
Цитата Сообщение от dusha_prog Посмотреть сообщение
shape GetObject(int index) {
* * * * return *objects[index];
* * }
заменить на:

C++
1
2
3
shape& GetObject(int index) {
        return *objects[index];
    }
1
18.11.2017, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2017, 21:58
Помогаю со студенческими работами здесь

внешнее хранилище
Кто-нибудь сталкивался с организацией внешнего хранилища для прикрепленных файлов в 1с? Задача -...

Key value хранилище
Здравствуйте, необходима помощь с задачей. Суть такая: нужно записывать в файл пару ключ-значение,...

Хранилище значений
Доброго времени суток! Это что за тип такой?

Хранилище Значения
Коллеги, изучая интересную вещь ХранилищеЗначения наткнулся на кое какие непонимания.. С...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru