Я не понимаю разницы между файлами .h, .hpp и .cpp в библиотеке облака точек. Здесь - пример с двусторонним фильтром, говорят, что:
- include / pcl / filters / двусторонний. H - будет содержать все определения;
- include / pcl / filters / impl / двусторонний. Hpp - будет содержать шаблонные реализации;
- src /носторонний.cpp - будет содержать явные экземпляры шаблона.
Я понимаю общую концепцию заголовочного файла и его реализации, но почему существует два заголовочных файла? В чем разница между шаблонной реализацией и явным созданием шаблона?
В данный момент я работаю с классом Kmeans, и .hpp не используется, вместо этого они просто имеют реализацию в .cpp файле , и они включают в себя .h файл . Зачем? Более того, в файле kmeans.h они дают реализацию некоторых открытых функций-членов, а не только сеттеров и геттеров. Я не могу найти обоснование этого кода.
Спасибо!