1 / 1 / 0
Регистрация: 22.03.2018
Сообщений: 7
1

Как последовательно удалить все объекты класса

30.04.2019, 12:16. Показов 1977. Ответов 1

Author24 — интернет-сервис помощи студентам
Есть вот такой класс
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
140
141
142
143
144
145
146
147
148
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
 
 
 
class tovar
{
private:
    static int count;
    int id;
protected:
    char *name;
    int price;
    char* company;
public:
    tovar();
    int get_price() { return price; }
     ~tovar();
    void out();
};
int tovar::count = 0;
tovar::tovar()
{
    char s1[45];
    char s2[45];
    count++;
    id = count;
    cout << "Введите наименование товара ";
    cin >> s1;
    name = new char[strlen(s1)];
    strcpy(name, s1);
    cout << "Цена: ";
    cin >> price;
    cout << "Введите наименование производителя ";
    cin >> s2;
    company = new char[strlen(s2)];
    strcpy(company, s2);
}
tovar::~tovar()
{
    cout << "Удален объект " << id << "." << name;
}
void tovar::out()
{
    cout << id << ". " << name << " " << price << " " << company;
}
class milk :public tovar
{
protected:
    static int count;
    int id;
    int shelf_life;
    int volume;
public:
    milk();
     ~milk();
    void out();
    void swap(milk *);
};
int milk::count = 0;
milk::milk() : tovar()
{
    count++;
    id = count;
    cout << "Введите срок хранения молока в днях: ";
    cin >> shelf_life;
    cout << "Введите объем молока: ";
    cin >> volume;
}
 
milk::~milk()
{
    cout << "\nУдален объект " << id << "." << name << " сроком хранения " << shelf_life;
    
}
void milk::out() {
    cout << id << ". " << name << " " << price << " " << company << " " << shelf_life;
 
}
int vvod()
{
    cout << "Введите кол-во записей: ";
    int z;
    cin >> z;
    return z;
}
void milk::swap(milk *obj)
{
    int temp = obj->id;
    obj->id = id;
    id = temp;
 
    temp = obj->price;
    obj->price = price;
    price = temp;
 
    temp = obj->shelf_life;
    obj->shelf_life = shelf_life;
    shelf_life = temp;
 
    temp = obj->volume;
    obj->volume = volume;
    volume = temp;
 
    char *h = obj->name;
    obj->name = name;
    name = h;
 
    char *t = obj->company;
    obj->company = company;
    company = t;
}
void sort(milk *b, int n)
{
    for (int i = 0; i < n - 1; i++)
        for (int j = i + 1; j < n; j++)
        {
            if (b[i].get_price() > b[j].get_price())
                b[i].swap(&b[j]);
        }
}
void main()
{
    system("chcp 1251");
    system("cls");
    int a = vvod();
    milk *arr = new milk[a];
    for (int i = 0; i < a; i++)
        arr[i];
    for (int i = 0; i < a; i++)
        arr[i].out();
    cout << "\n Cортировка: ";
    sort(arr, a);
    for (int i = 0; i < a; i++)
        arr[i].out();
 
    cout << "\nУдаление";
    delete [] arr;
    cout << "\n\nПроверка того,что удалилось:";
    for (int i = 0; i < a; i++)
        arr[i].out();
    cin.get();
    cin.get();
}
Как сделать так, чтобы все созданные объекты класса удалились? Через
C++
1
2
for (int i = 0; i < a; i++)
        delete arr[i];
не работает, да и в моем примере тоже программа крашится на этапе удаления объектов. Прошу вашей помощи новичку.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2019, 12:16
Ответы с готовыми решениями:

Как узнать все имеющиеся объекты класса?
Всем доброго времени суток! У меня есть класс Cat, в котором я создаю объекты (новых кошек). И как...

Удалить все объекты и создать объекты - потомки
Как сделать клоны объекта в другом объекте? Использую метод Instantiate Есть метод public...

Как удалить все объекты из памяти?
Есть программа код которой выполняется в потоке (Ttread). Программа &quot;состоит&quot; из 10 двумерных...

динамически создать/удалить объекты класса (правильно сделал?)
создал класс: myclass { } завел вектор, в котором будут храниться указатели на объекты данного...

1
4264 / 3323 / 925
Регистрация: 25.03.2012
Сообщений: 12,520
Записей в блоге: 1
30.04.2019, 12:28 2
Цитата Сообщение от mkolmi Посмотреть сообщение
delete [] arr;
а это что по-твоему?
Сколько было new - столько и delete/
Вот для этого new, например, нет пары!
C++
1
    name = new char[strlen(s1)];
и кстати выход за пределы массива в функции
C++
1
strcpy(name, s1);
0
30.04.2019, 12:28
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2019, 12:28
Помогаю со студенческими работами здесь

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

Удалить все объекты, которые находятся в классе
Привет! Есть класс Element и стек объектов данного класса. Нужно удалить все объекты, которые...

В массиве объектов класса все объекты заполняются данными последнего
Есть задача: напишите программу, которая может выводить список членов по реальным именам,...

Удалить все объекты у которых переменная равна false
Добрый день, форумчане. Вопрос связанный с памятью: Есть около 43000 объектов у которых есть...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru