В настоящее время у нас есть свод кода, который позволяет плагины услуг, которые предлагают формы связи с ядром, например, tcp/ip, udp/ip, usb и т. Д. Эти службы плагины обращают внимание на экземпляры класса уведомлений на ядро для дальнейшей обработки.C++ Виртуальное ключевое слово как способ избежать включения единиц кода
В текущей реализации сервисный проект (который представляет собой отдельную динамически связанную библиотеку, запущенную в режиме реального времени через dlopen и друзей) будет скомпилирован против файла notifier.cpp, который находится в основном исходном коде (отдельный проект). Это дает доступ к реализациям методов уведомлений. Это не вызывает никаких претензий.
Два альтернативных варианта: 1. Поместите реализации метода уведомления в файл заголовка. 2. объявить методы уведомления инициатором и привязкой привязки до выполнения.
Избежать вопросов вычислительных издержек, каковы последствия варианта 2?
Есть ли другие возможности, доступные нам?
Благодаря
Почему вы хотите объявить их 'virtual', если вы не собираетесь переопределять их в производных классах? –
Кстати, другой вариант заключается в том, чтобы реализация метода была скомпилирована в ядро, а не в службу. –
Мысль о том, что внутренняя обработка метода изменяется, скажем, исправление ошибки, мы не хотим перекомпилировать каждый плагин, чтобы воспользоваться этим исправлением. Если бы у нас была привязка времени выполнения, для запуска была бы запущена версия в ядре, то есть с исправлением .... нет? – Corvusoft