Я работаю на C #и недавно начал изучать C++. Одна из вещей, с которыми я столкнулся, — это идиома pimpl. Я занимался разработкой C #для некоторых крупных фирм, но никогда не сталкивался с ним.
Возможно, это неправильно, но насколько я понимаю, это необходимо в C++ из-за использования файлов заголовков и отсутствия опции частичного класса.
Но в C #мы постоянно создавали приложения, используя библиотеки классов. Если бы что-то изменилось в коде библиотеки, мы бы перекомпилировали его в dll и ссылались бы на новую dll в проекте приложения.
Я действительно не понимаю, почему то же самое нельзя сделать на C++. Pimpl выглядит для меня уродливым хаком.