Соnstructor, Destructor |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Соnstructor, Destructor |
sheka |
Сообщение
#1
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Соnstructor, Destructor обязательно ли их писать в наследниках, если они описаны в родителях?
|
volvo |
Сообщение
#2
|
Гость |
Мало ли кто где описан? А если наследник должен для корректной работы установить какие-то свои поля, или память выделить, за него это что, родитель делать будет? А удалять память (причем правильно удалять, столько, сколько было выделено именно для этого объекта) кто будет? Тоже родитель? Зачем тогда тебе иерархия? Пользуйся одним родителем, раз он все делает...
|
sheka |
Сообщение
#3
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Цитата А удалять память (причем правильно удалять, столько, сколько было выделено именно для этого объекта) кто будет? Соnstructor, Destructor описан только в родителе и оба пустые. При вызове из экземпляра наследника память правильно не выделится/удалится? |
volvo |
Сообщение
#4
|
Гость |
Пустой конструктор можешь убрать, он унаследуется от предка. Деструктор я бы оставил, даже больше того, сделал бы его виртуальным, поскольку у тебя есть виртуальные функции...
|
sheka |
Сообщение
#5
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Цитата Деструктор я бы оставил, даже больше того, сделал бы его виртуальным, поскольку у тебя есть виртуальные функции... Как виртуальность деструктора будет влиять на программу? Он же все равно ниоткуда из методов вызываться не будет. Почему пустой конструктор можно убрать, а деструктор нет? |
volvo |
Сообщение
#6
|
Гость |
Цитата Как виртуальность деструктора будет влиять на программу? То, что деструктор базового для всех класса TObject - виртуальный, для тебя, конечно, не показатель? Или ты думаешь, что если ты не используешь классы, а используешь Object-ы, то у тебя ООП вдруг становится другим, и играет по другим правилам? Ну-ну... Играй по своим правилам. Потом не жалуйся, что где-то падает, а где - непонятно. |
sheka |
Сообщение
#7
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Цитата Пустой конструктор можешь убрать, он унаследуется от предка. Деструктор я бы оставил, даже больше того, сделал бы его виртуальным, поскольку у тебя есть виртуальные функции... Упс. Вот здесь не внимательно 2й пост прочитал Сообщение отредактировано: sheka - |
Текстовая версия | 2.05.2024 20:07 |