Какова цель разоблачения ваших заголовков?
Иногда вы можете разрабатывать какую-то функциональность или библиотеку.Возможно, вы захотите помочь другому человеку, клиенту или клиенту, поделившись функциональностью вашего кода.Но вы не хотите делиться точными рабочими деталями.
Так, например, вы хотите поделиться функцией обработки изображений, которая применяет к ней красивые фильтры.Но в то же время вы не хотите, чтобы они точно знали, как вы это реализовали.для таких сценариев вы можете создать заголовочный файл, скажем, img_filter.h
с объявлением функции -
bool ApplyFilter(const string & image_path);
Теперь вы можете реализовать все детали в img_filter.cpp
:
bool ApplyFilter(const string & image_path)
{
....
// Implementation detail
...
}
Далее выможете подготовить dll этого файла, который мог бы использовать ваш клиент.Для справки работы, параметров, использования и т. Д. Вы можете поделиться img_filter.h
.
Связь с интерфейсом:
Хорошо иметь хорошо определенный интерфейс, поэтому вы можете прозрачно изменять детали реализации, что означает, что HOW вы реализуетедетали не имеют значения, пока интерфейс или имя функции и параметры остаются неизменными.