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

c++ Очистка памяти в классе

26.02.2020, 15:52. Показов 1400. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый день, возник вопросик. В каком месте программы, мне нужно создать delete[] всех моих инициализованных в классе параметров? Где-то в main или же где-то в классе?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Gradebook {
public:
    void set() {
        cout << "\nEnter Number of exams.";
        cin >> nExams;
        for (int i = 0; i < nExams; i++) {
            cout << "\n Exam?";
            cin >> exam[i];
            cout << "\n Grade?";
            cin >> grade[i];
            cout << "\n Date?";
            cin >> date[i];
 
        }
    }
private:
    int nExams = 0;
    string* exam = new string[nExams];
    int* grade = new int[nExams];
    string* date = new string[nExams];
};
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2020, 15:52
Ответы с готовыми решениями:

Наследование. Очистка памяти в производном классе
Создаю базовый класс ParentClass, содержащий в качестве объекта массив (выделяется динамический...

Очистка памяти
Подскажите пожалуйста что не так делаю, создаю массив лейблов: TLabel **Labels; Labels = new...

очистка памяти
при запуск программы сама собой создаётся точка останова в строке 59. И дальше программа идти не...

Очистка памяти
При выполнении программы, память приложения растёт, а она должна быть неизменной. int main() {...

2
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
26.02.2020, 15:54 2
Лучший ответ Сообщение было отмечено Screeki как решение

Решение

Цитата Сообщение от Screeki Посмотреть сообщение
моих инициализованных в классе параметров? Где-то в main или же где-то в классе?
В деструкторе класса
C++
1
2
3
4
5
6
7
class Gradebook {
public:
~Gradebook ()
{
  delete[] exam;
..............
}
0
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
26.02.2020, 16:52 3
Цитата Сообщение от Screeki Посмотреть сообщение
int nExams = 0;
string* exam = new string[nExams];
Учитывайте, что память нужно выделять после того, как nExams станет известно.
2
26.02.2020, 16:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2020, 16:52
Помогаю со студенческими работами здесь

Очистка памяти
Цель: Написать программу, которая читает текст из файла и записывает в новый файл те слова,...

Очистка памяти
Как правильно очистить память в массиве классов Вот код конструктора, выделяющего память, и...

очистка памяти
в данном случае деструктор очистит всё, или нет? #include &quot;base.h&quot; #include &lt;cstdlib&gt; #include...

Очистка памяти
Вот сделал лабу и все работает отлично, но осталось последнее new выделяет память мне нужно...


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

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

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