Я столкнулся с терминологией в C++, которая является библиотекой. В книге, которую я читаю, указано, что iostream является библиотекой, и это системная библиотека. Затем после этого в книге говорится: «Позднее вы создадите свою собственную библиотеку с расширением .h». Является ли библиотека такой же, как и класс, потому что, когда я включил мою библиотеку .h, я фактически создал класс. Если библиотека такая же, как класс, что мы можем сказать о языке C, это класс? Спасибо.Библиотеки против классов в C++
ответ
Обратите внимание, что это просто упрощенное объяснение, поэтому вы можете обернуть вокруг себя голову, а не педантичное или точное и полное определение библиотеки.
Библиотека представляет собой набор функций, классов и других материалов, упакованных вместе.
Например стандартной библиотеки 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>
, В конечном счете, это зависит от вас, сколько вы хотите поглотить как «потому что так оно и делается» и сколько вы хотите понять. Прогресс может быть достигнут только в том случае, если вы выбрали один из вариантов (спойлер: последний).
Не могли бы вы также упомянуть, что такое заголовочный файл? –