|
|
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
Суть вкратце: Если виртуальному методу написать final , то его нельзя будет наследовать: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вроде понятно. Внимание вопрос: А зачем так “городить огород”? Если не хочешь наследования, то просто не объявляй virtual ... тогда никакие final и не нужны Так зачем final ? Пожалуйста, поделитесь идеями. P.S. раздел “Final Methods” в официальном Help: http://docwiki.embarcadero.com/RADStudio/Rio/en/Methods_(Delphi)#Virtual_and_Dynamic_Methods ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 13:27 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
Maxim.KА зачем так “городить огород”? Если не хочешь наследования, то просто не объявляй virtual ... тогда никакие final и не нужны Что делать, если так было объявлено еще раньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 13:29 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
Maxim.KА зачем так “городить огород”? Если не хочешь наследования, то просто не объявляй *virtual* ... тогда никакие *final* и не нужны Попробуй расширить своё сознание и представить иерархию классов со вложенностью более одного. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 13:31 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
Maxim.KА зачем так “городить огород”? С точки зрения изобразительных возможностей языка она действительно не нужна. Но если есть многоуровневая структура классов, в которой базовые спроектированы не тобой и недоступны для изменения, она в некоторых случаях позволяет купировать последствия ошибок проектирования этой структуры. Кроме того, она в принципе позволяет генерировать более эффективный код для вызова таких методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 14:02 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПопробуй расширить своё сознание и представить иерархию классов со вложенностью более одного. Вынужен вас разочаровать, в Delphi классы наследуются , а не "вкладываются". P.S. (и чтоб не уподобаться "некоторым") отвечаю по теме: Директива final, для виртуальных методов это скорее всего опечатака в Help-у. Т.к. прерывать виртуальное-наследование имеет смысл только для override (и бессмысленно для virtual) Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 14:40 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
softwarer позволяет купировать последствия ошибок проектирования этой структуры. ... еще раз проверим: директиву virtual пишет сам проектировщик базового класса. А "купировать последствия" директивой final будет сторонний пользователь этого класса, у него есть возможность сделать override Но в embarcadero Help указано, что final используется с virtual - но это глупость, т.к. зачем объявлять virtual и сразу же его запрещать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2019, 14:57 |
|
||
|
Директива final для виртуальных методов. В чем ее смысл?
|
|||
|---|---|---|---|
|
#18+
High.ProgramerНо в embarcadero Help указано, что final используется с virtual - но это глупость, т.к. зачем объявлять virtual и сразу же его запрещатьНе боги горшки обжигают хелп пишут. Придираться к подобному - моветон, на фоне других проблем делфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2019, 01:56 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39794567&tid=2039636]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 447ms |

| 0 / 0 |
