Зачем использовать заголовочный файл C ++? [Дубликат]

0

Я понимаю, что заголовочный файл содержит все прототипы каждой функции, содержащейся в файле реализации; но какова реальная цель? Это связано с тем, что когда другая программа вызывает класс, она получает информацию только в файле заголовка, а реализация скрыта? Каковы реальные цели этого?

  • 0
    Заголовок должен содержать только прототипы функций, доступных вне файла реализации. Он также содержит информацию о типе, необходимую для использования этих функций. Заголовочные файлы - это клей, который скрепляет систему; они обеспечивают согласие потребителей и производителей. Также было бы чертовски неприятно, когда вам нужно будет печатать всю информацию в стандартных заголовках каждый раз, когда вам нужно использовать одно из стандартных средств.
  • 0
    Кстати, если бы это был я, я бы принял другой ответ в этой теме. Я даже не представляю, как перекомпилировать проекты без заголовочных файлов. )
Показать ещё 1 комментарий
Теги:
file
definition

1 ответ

1

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

Вот пример, который может помочь понять это для вас:

Я публикую библиотеку libfoo (неважно, есть ли ее.so,.a или.dll) и сказал вам, что в ней есть куча хороших функций и типов данных, которые решают проблему, и вы хотите ее использовать. Если бы я не дал вам заголовочный файл, как ваш код мог бы скомпилироваться, когда ему нужно было знать, как большие структуры данных/какие подписи функций искать? Как вы знаете, как его кодировать?

Библиотека не будет ссылаться до привязки, и компиляция уже завершена в тот момент времени.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню