2015-11-18 7 views
0

Я столкнулся с терминологией в C++, которая является библиотекой. В книге, которую я читаю, указано, что iostream является библиотекой, и это системная библиотека. Затем после этого в книге говорится: «Позднее вы создадите свою собственную библиотеку с расширением .h». Является ли библиотека такой же, как и класс, потому что, когда я включил мою библиотеку .h, я фактически создал класс. Если библиотека такая же, как класс, что мы можем сказать о языке C, это класс? Спасибо.Библиотеки против классов в C++

ответ

2

Обратите внимание, что это просто упрощенное объяснение, поэтому вы можете обернуть вокруг себя голову, а не педантичное или точное и полное определение библиотеки.


Библиотека представляет собой набор функций, классов и других материалов, упакованных вместе.

Например стандартной библиотеки C++ является (концептуально) состоит из множества библиотек, например:

  • Строка библиотека
  • библиотека алгоритм
  • ввода/вывода библиотеки
  • т.д.

The IO library содержит следующие классы:

  • std::iostream (фактически ЬурейеЕ к std::basic_iostream)
  • std::ios
  • std::istream
  • std::ostream
  • т.д.

Для того, чтобы использовать библиотеку, в основном, нужны две вещи: в библиотеке чтобы иметь доступ к объявлениям и библиотеке, которые должны быть связаны с вашим проектом в orde r для доступа к символам, экспортированным такой библиотекой. ОС поставляется с предустановленной стандартной библиотекой C++, а компилятор - в режиме C++ - автоматически ссылается на него, поэтому все, что вам нужно сделать, это включить необходимые заголовки.


Чтобы понять, что такое заголовок и какова его роль, вам сначала необходимо понять разницу между декларацией и определением. Вы можете перенаправить на What is the difference between a definition and a declaration? или любой другой материал для чтения.

Затем вам нужно понять концепцию единиц компиляции. Вы можете прочитать What is a “translation unit” in C++ или How is compilation unit defined in c++.

Используя все вышесказанное, вы должны иметь возможность компилировать несколько исходных файлов в один исполняемый файл и понимать используемый механизм основы. Вы можете прочитать Using multiple .cpp files in c++ program или How to use multiple source files to create a single object file with gcc

Отсюда небольшой шаг для создания и использования вашей собственной статической библиотеки.Вы можете начать здесь: How to create a static library with g++?

Другим важным понятием для понимания является компиляция/связывание: How does the compilation/linking process work?


... или же все, что вам нужно знать, что для того, чтобы использовать std::iostream вам необходимо включить <iostream> , В конечном счете, это зависит от вас, сколько вы хотите поглотить как «потому что так оно и делается» и сколько вы хотите понять. Прогресс может быть достигнут только в том случае, если вы выбрали один из вариантов (спойлер: последний).

+1

Не могли бы вы также упомянуть, что такое заголовочный файл? –