API - это интерфейс, который определяет , как взаимодействовать с определенным объектом. hpp-файлы не являются интерфейсами, но могут содержать такие интерфейсы.
Вы можете видеть любую публикуемую c часть класса как API - интерфейс, видимый для всех пользователей, чтобы использовать его для взаимодействия с определенный объект. То же самое относится и к функциям stati c, которые предоставляют функциональные возможности, когда объект не задействован.
Обратите внимание, что не все методы класса являются открытыми; Все функции, которые отвечают за внутреннее представление объекта, не должны быть видны другим, и не являются частью его API (Принцип Encapsulation ).
Более того, часто мы используем абстрактные интерфейсы (классы, имена которых обычно начинаются с I, например IClassName ). Эти интерфейсы предназначены для использования в качестве абстракции подчеркивающей реализации и являются очень большой частью объектно-ориентированного программирования (принцип абстракция , который с Наследование позволяет нам использовать Полиморфизм ).