|
|
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
В общем имеется класс: Код: pascal 1. 2. 3. 4. 5. и есть наследник, где свойство ACollection предка перекрыто новым типом: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. По идее у меня должна быть утечка памяти для TCollector.ACollection или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 13:00 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ По идее у меня должна быть утечка памяти для TCollector.ACollection или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 13:05 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Не увидел в коде СВОЙСТВА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 13:11 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
26.12.2019 13:00, Страдалецъ пишет: > По идее у меня должна быть утечка памяти для TCollector.ACollection или нет? не парься. ты ж в деструкторе её освобождаешь (надеюсь) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 13:24 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ Как корректно перекрыть свойство предка? Если коротко, то наиболее корректный вариант - Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 14:06 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ Код: pascal 1. 2. 3. 4. 5. и есть наследник, где свойство ACollection предка перекрыто новым типом: Код: pascal 1. 2. 3. 4. 5. У экземпляра класса TFileCollector будет свой ACollection: TQueue<TFileInfo>; и наследуемый ACollection: TQueue<String>; Это так и должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 14:23 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Polesov Страдалецъ Код: pascal 1. 2. 3. 4. 5. и есть наследник, где свойство ACollection предка перекрыто новым типом: Код: pascal 1. 2. 3. 4. 5. У экземпляра класса TFileCollector будет свой ACollection: TQueue<TFileInfo>; и наследуемый ACollection: TQueue<String>; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 14:37 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
А закончим тем, что без "хакерского способа" TFileCollector не получит доступ к родительскому ACollection из-за совпадения имен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 14:42 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Квейд А закончим тем, что без "хакерского способа" TFileCollector не получит доступ к родительскому ACollection из-за совпадения имен. Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 16:05 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Квейд Нет. Не будет. Начнем с того, что ACollection это приватное поле. Неточно выразился: экземпляр класса TFileCollector будет содержать наследуемое поле ACollection от класса TCollector. Про доступ к наследуемому полю речи нет. Ну, и если оба класса описаны в одном модуле, приватностью можно пренебречь: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 16:08 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Если все в одном модуле, то должно сработать Код: pascal 1. У меня с приватным полем inherited не прокатило (Delphi XE7): Код: powershell 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 16:11 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Квейд А закончим тем, что без "хакерского способа" TFileCollector не получит доступ к родительскому ACollection из-за совпадения имен. Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 16:19 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Квейд для полей не катит Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 16:22 |
|
||
|
Как корректно перекрыть свойство предка?
|
|||
|---|---|---|---|
|
#18+
Ну в общем-то мне как раз не нужно это поле предка, т.к. я его в наследнике перекрываю, но по факту создается два поля с одинаковым именем от предка в неявном виде и в явном виде у наследника. Память то освободится, после завершения наследника, но правильнее все-же делать по варианту от softwarer, без этих фантомов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2019, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=55&tid=2038730]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 341ms |

| 0 / 0 |
