Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Вызов виртуальной функции без Вирт() (число прочтений - 243 )
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Вызов виртуальной функции без Вирт()
14. Июля 2023 :: 12:23
Печать  
Здравствуйте!

Делаю обработку. Все классы подключаются динамически при открытии обработки.
Глобальный модуль не доступен.

В базовом классе надо вызвать виртуальную функцию.
Сделать в глобальнике "Вирт()" я не могу.
Как можно по другому без Вирт() сделать вызов виртуальной функции?

Подскажите плиз.
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Вызов виртуальной функции без Вирт()
Ответ #1 - 16. Июля 2023 :: 11:10
Печать  
Зашунтируй в классе препроцессором.
Синтакс контроль будет проходить, но этот код компилироваться не будет. В результате будут вызываться встроенные функции 1с++
Код (C++)
Выбрать все
//#if Этот код не компилируется
Функция Вирт() КонецФункции
Функция Я() КонецФункции
//#endif 

  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: Вызов виртуальной функции без Вирт()
Ответ #2 - 17. Июля 2023 :: 07:50
Печать  
Спасибо, получилось.

Вирт() возвращает ссылку на конкретного конечного объекта-наследника?
Грубо говоря, Вирт() делает преобразование "(КонечныйНаследник*)Я()". Верно?

А если в цепочке наследования несколько классов...
Например, "КонечныйНаследник" - "Наследник2" -  - "Наследник1" - "Базовый".
Можно ли в базовом классе получить ссылку на наследника конкретного типа, например на объект типа "Наследник2"?
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Вызов виртуальной функции без Вирт()
Ответ #3 - 17. Июля 2023 :: 09:16
Печать  
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать