Форум программистов, компьютерный форум CyberForum.ru

Возможно ли явное разрушение объекта класса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятные символы в output.txt - кодировка http://www.cyberforum.ru/cpp-beginners/thread1223149.html
#include <iostream> #include <algorithm> #include <cmath> using namespace std; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int a,b,d,e,c; cin>>a;
C++ Определить, работают ли в фирме люди с одной из заданных фамилий Известны фамилии всех 30 сотрудников фирмы и их адреса. Определить, работают ли в фирме люди с одной из фамилий: Кузин, Куравлев, Кудин, Кульков или Кубиков. В случае положительного ответа напечатать их адреса. Вот такую вот задачку задали в универе. http://www.cyberforum.ru/cpp-beginners/thread1223141.html
C++ Перегрузить оператор суммирования, не принадлежащий классу
Перегруженный оператор суммирования, который не будет пренадлежать классу и будет работать с 2 объектами двумерных классов (наверное массивов)
Запись в базовый класс информации из наследников C++
Написать перегруженный оператор преобразования типов который будет вытягивать из класса наследников нужную информацию и эту информацию записывать в базовый класс
C++ Классы, которые будут индексировать букву http://www.cyberforum.ru/cpp-beginners/thread1223136.html
Написать 3 класса которые будут индексировать букву
C++ Ошибка деструктора - В конструкторе происходит выход за границу массива Доброго времени. #include <iostream.h> #include <math.h> class OKTAVE { public: OKTAVE(unsigned int Leng) { подробнее

Показать сообщение отдельно
DrOffset
6841 / 4052 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
05.07.2014, 23:57     Возможно ли явное разрушение объекта класса?
Цитата Сообщение от TierX Посмотреть сообщение
Пытался через явный вызов деструктора(с чего и началось) но класс остался полуживой.
C++ не таков. Он не будет тебя защищать от прострела ног, рук и т.п. По стандарту обращение к данным разрушенного класса - Undefined behaviour.
Цитата Сообщение от TierX Посмотреть сообщение
По завершению програмы вылетает
Потому что деструктор вызывается второй раз. В этом суть автоматических объектов. Деструктор вызывается в конце области видимости.
Цитата Сообщение от TierX Посмотреть сообщение
Зачем тогда предусмотрен явный вызов деструктора?
Для других ситуаций. В частности вот для этого.
Цитата Сообщение от TierX Посмотреть сообщение
Насколько я понимаю все обьекты/переменные/функции созданые в main идут на стек но как их оттуда удалять явно?(аля new/delete)
На стек идут автоматические объекты. Удалять их явно оттуда не нужно. Объект живет в своей scope, в конце scope он автоматически разрушается.
Цитата Сообщение от TierX Посмотреть сообщение
типа начального *ptr=NULL можно ли так после инициализации делать?
Если до этого был new, то обязательно должен быть delete. Иначе, присвоив NULL значению указателя, мы потеряем адрес выделенной памяти и будет утечка.
Цитата Сообщение от TierX Посмотреть сообщение
Как удалить его.
Что именно нужно удалить? Указатель или объект на который он указывает?
 
Текущее время: 05:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru