0 / 0 / 0
Регистрация: 15.10.2014
Сообщений: 1
|
||||||||||||||||
1 | ||||||||||||||||
C++ block type is valid phead nblockuse15.10.2014, 13:05. Показов 3023. Ответов 1
Метки нет Все метки)
(
День добрый. Задача такая : определить класс pvector, похожий на вектор указателей, за исключением того, что он содержит указатели объекта и каждый объект уничтожается его деструктором
Моё видение решения данной задачи :
Проблема следующая: с удивлением обнаружил, что после компиляции данного кода сообщение "destructor is here" вызывается два раза до выхода из программы, и один раз в момент выхода(т.е. когда он и должен вызываться). С этим, думаю и связано появление ошибки. Хотелось бы узнать, почему деструктор вызывается после использования cout. Спасибо. Добавлено через 10 минут Нашёл у себя ошибку, кому интересно: проблема была связана с конструктором копирования
Вот правильный вариант
Выходит что дважды был использован конструктор копирования, когда передавался экземпляр класса pvector в качестве аргумента перегруженному оператору << Т.е. получается, что декструкторы вызываются по выходу из любой функции, использующей экземпляр в качестве аргумента? Спасибо.
0
|
|
15.10.2014, 13:05 | |
Ответы с готовыми решениями:
1
phead->nblockuse
Ошибка pHead->nBlockUse |
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
15.10.2014, 19:45 | 2 |
0
|
15.10.2014, 19:45 | |
15.10.2014, 19:45 | |
Помогаю со студенческими работами здесь
2
Деструктор и _Block_Type_Is_Valid (pHead->nBlockUse) Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Ошибка при освобождении памяти (block type is valid) и неправильный вывод структуры данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |