С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
pito211
186 / 173 / 18
Регистрация: 22.03.2010
Сообщений: 612
1

new delete

24.03.2011, 11:43. Просмотров 651. Ответов 6
Метки нет (Все метки)

здраствуйте! назрел вопрос

class cls1 {
...
...
}

class cls2 {
...
cls1 *pt = new cls1();
...
}

void main(...) {
...
cls2 *pt = new cls2();
...
delete pt;
}

я так понимаю класс cls1 повиснет где то в памяти?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 11:43
Ответы с готовыми решениями:

Используя delete по указателю, возвращенному new [] или delete [] указателем, возвращаемым new
Помогите ответить на вопрос, не могу понять суть вопроса (правильно ли понимаю,...

В чем разница между delete и delete[]?
а можете еще по подробней рассказать про delete, точнее даже delete, чем...

Чем отличается delete[] от delete?
чем отличается? delete mas от delete mas

delete[] *pointer vs. delete pointer и утечка памяти
Здравствуйте! Есть класс "умного" указателя counted_ptr, который удаляет...

"delete [] a, b;" эквивалентно "delete [] a; delete [] b;"?
Я правильно понимаю, что "delete a, b;" эквивалентно "delete a; delete b;" ?

6
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 12:42 2
Да, так и есть.
1
bigredcat
370 / 317 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
24.03.2011, 12:56 3
Цитата Сообщение от pito211 Посмотреть сообщение
class cls2 {
...
cls1 *pt = new cls1();
...
}
ну, только не совсем так, а примерно вот так
C++
1
2
3
4
5
6
7
8
9
class cls2
{
public:
cls2() {pt = new cls1;}
 
...
cls1 *pt;
...
}
Цитата Сообщение от pito211 Посмотреть сообщение
void main(...) {
...
cls2 *pt = new cls2();
...
delete pt;
}
я так понимаю класс cls1 повиснет где то в памяти?
в этом случае даже известно где
C++
1
pt->pt
1
Evg
Эксперт CАвтор FAQ
19361 / 7210 / 538
Регистрация: 30.03.2009
Сообщений: 20,161
Записей в блоге: 30
24.03.2011, 12:57 4
Цитата Сообщение от pito211 Посмотреть сообщение
я так понимаю класс cls1 повиснет где то в памяти?
Повиснет не класс, а экземпляр класса
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 13:16 5
C++
1
2
3
4
5
6
7
8
9
class cls2 {
~cls2()
{
       delete pt;
}
...
cls1 *pt = new cls1();
...
}
И не зависнет уже никто...

Добавлено через 21 секунду
*повиснет
*нигде
0
bigredcat
370 / 317 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
24.03.2011, 13:30 6
Цитата Сообщение от Deviaphan Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
class cls2 {
~cls2()
{
       delete pt;
}
...
cls1 *pt = new cls1(); // !!!
...
}
Уже так стало можно
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 13:32 7
Цитата Сообщение от bigredcat Посмотреть сообщение
Уже так стало можно
Под ... ... вполне может скрываться конструктор или метод.)
Ошибку компиляции он ведь найти сможет, надеюсь.)
0
24.03.2011, 13:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2011, 13:32

delete[]
Здравствуйте! Имеется след. код: char* values = new char; values = '\0';...

New/Delete
нужно рассмотреть конкретную ситуацию: область, выделенная желтым цветом будет...

new и delete
Ошибка, незнаю как для моего класса выделить память. Как исправить? ...


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

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

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