0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46
|
||||||
1 | ||||||
Написать для класса деструктор, выводящий надпись07.04.2016, 14:35. Показов 526. Ответов 8
Метки нет Все метки)
(
Подскажите пожалуйста, как написать в 71 строке деструктор, так, чтобы при компиляции выводилось на экран "Destruktor rabotaet"?
0
|
|
07.04.2016, 14:35 | |
Ответы с готовыми решениями:
8
Написать деструктор для данного класса Дописать конструктор и деструктор для класса Для класса задать конструктор и деструктор
|
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
|
||||||
07.04.2016, 15:20 | 2 | |||||
В блок можно взять, у вас после getch() "Destruktor rabotaet" ![]()
0
|
503 / 246 / 74
Регистрация: 31.10.2010
Сообщений: 742
|
||||||
07.04.2016, 15:30 | 3 | |||||
123c, для того что бы деструктор заработал, необходимо создавать и уничтожать объект.
Как известно если объект создан как как переменная типа класса, то он уничтожается автоматически при выходе из зоны видимости (т.е. из функции, цикла, другого объекта, условия и т.д.) у Вас этого выхода из зоны видимости нет. При выделении памяти для объекта с помощью оператора new, деструктор сработает при очистке памяти оператором delete.
0
|
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46
|
|
07.04.2016, 15:43 [ТС] | 4 |
0
|
503 / 246 / 74
Регистрация: 31.10.2010
Сообщений: 742
|
|
07.04.2016, 15:57 | 5 |
смотрите пример, оператор new создаёт объект (вызывается конструктор); оператор delete -- удаляет объект (вызывается деструктор).
0
|
503 / 246 / 74
Регистрация: 31.10.2010
Сообщений: 742
|
|
08.04.2016, 15:48 | 7 |
ISergey, в таком маленьком и вполне очевидном коде смысл только воспитательный, но когда код становится большим и нелинейным, т.е. последовательность выполнения может быть различной, например, в несколько потоков, с разделением данных, подобные проверки необходимы или надо использовать "умные" сборщики мусора и "умные" указатели, которые осуществляют подобные проверки и проверки выхода из зоны видимости автоматически.
0
|
503 / 246 / 74
Регистрация: 31.10.2010
Сообщений: 742
|
||||||
08.04.2016, 18:28 | 9 | |||||
, имеете право, собственно С++ достаточно творческий язык и точек зрения, соответственно, достаточно.
что касается , есть несколько реализаций оператора new, в зависимости от компилятора и версии компилятора. Ведь стандартная реализация оператора, это то какие действия выполняет этот оператор после компиляции в соответствии с кодом который генерирует компилятор для данного оператора без перегрузки. Низкоуровневое выделение памяти будет отличаться не только от типа ОС, но и от её версии, например, win 98, win xp и win 10 у всех по разному. А если сравнивать, например, C++ для *nix систем под процессоры Motorolla или Atmel 32, с С++ под Win на Intel, то действия будут отличаться кардинально. Кроме того, по стандарту C++ операторы возможно перегружать, new в том числе. В "стандартной реализации" new хорош только в простом линейном коде, а в относительно сложном коде возникает масса проблем, частично устранить эти проблемы помогают следующие, достаточно простые, приёмы:
Проблемы выделения памяти, языковых стандартов значительны и рассмотрена во множестве тематической литературы. Поэтому у человека ищущего будет достаточно пищи для размышлений и материалов для понимания. Благодарю.
0
|
08.04.2016, 18:28 | |
Помогаю со студенческими работами здесь
9
Разработать конструкторы и деструктор для заданного класса
Нужно ли прописывать конструктор и деструктор для чисто виртуального абстрактного класса class выводящий эллементы другого класса... Деструктор класса деструктор класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |