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