PavelK
@PavelK

С++ (Qt) плагины. Pimpl. Как оставив общедоступный .h файл скрыть реализацию класса от плагинов?

Приветствую.
В программе используется система плагинов с взаимодействием через сигнал/слот, т.е. могу при необходимости передать QObject *.

Теперь нужен сабж.
Т.е. плагины могут инклудить .h файл класса, хотелось что бы реализация класса (.cpp) для них осталась неизвестной, так как она в дальнейшем может меняться.
Т.е. простая передача ссылки на класс естественно не подходит.

C pimpl знаком, но не могу приспособить для плагинов, да и думаю не совсем подойдёт.
Или подойдёт? Может есть где пример кода?

Или может кто подскажет хоть в каком направлении двигаться?

Или "Сынок, это фантастика" ?
  • Вопрос задан
  • 2545 просмотров
Решения вопроса 1
PavelK
@PavelK Автор вопроса
Сделал.
В классе вызов функций идёт через обёртку, которая вызывает указатель на функцию.

Заголовочный:
DB& Exec() { return (this->*exec)(); }
 DB& (DB::*exec)()= &DB::_Exec;
DB& _Exec();


В плагины передаю ссылку на класс.

Но приходится каждую функцию прописывать аж в трёх местах, но работает.
Возможно в дальнейшем получиться упростить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CodeX Нижний Новгород
от 30 000 до 80 000 ₽
CodeX Нижний Новгород
от 30 000 до 80 000 ₽
Uptrade Москва
от 120 000 до 200 000 ₽