IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Библиотека, С++
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Почему нельзя просто добавить библиотеку описав ее
так (Показать/Скрыть)
?
Logs (Показать/Скрыть)

ConsoleLib.cpp (Показать/Скрыть)

ConsoleLib.h (Показать/Скрыть)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, описал, в смысле, добавил H-файл, дальше что? Хидер - он на то и хидер, что там хранятся только заголовки подпрограмм обычно (а сама библиотека может идти не в исходниках а в виде LIB-файла, например). То есть, ты сделал то, что необходимо компилятору, чтоб откомпилировать твой код, потому как из хидера компилятор знает, каковы прототипы функций, какие параметры должны передаваться в функцию, можно проверить, правильно ли ты передаешь, или нет. Слинковать программу без подключения cpp/lib или еще какого файла будет невозможно - линкер не найдет реализации функции, то есть, EXE-файл ты не получишь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Прочел какую-то странную книжечку http://lib.ru/CPPHB/cpptut.txt в которой куча ответов на разные мои вопросы lol.gif . До этого их книгу я только по чистому си видел. Так вот, я понял, что #include просто "включает С++ный текст в программу", а *.h помогает определить совместимость типов.
Т.е. в программу надо добавить 2 такие строчки:
#include "ConsoleLib.h"
#include "ConsoleLib.cpp"
Но так как подключаемый файл срр один, то можно файл h и не подключать.
Правильно? wacko.gif

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Так вот, я понял, что #include просто "включает С++ный текст в программу", а *.h помогает определить совместимость типов.
Неправильно понял. Вот еще "грабли" С/С++ (это в продолжение темы об олимпиадах по программированию).

#include в любом случае вставляет содержимое файла в текст программы (т.е., считай, что вместо директивы #include <имя> у тебя стоит содержимое файла <имя>). А вот о том, что можно, а что нельзя подключать таким образом - разговор особый. Так подключаются только заголовочные *.H/*.HPP файлы. Ни в коем случае не подключай *.C/*.CPP файлы через #include.. Это может привести к совершенно непредсказуемым последствиям. Прими себе за правило: есть *.H/*.HPP - подключай include-ом. Есть *.C/*.CPP - добавляй в проект (в смысле, "Add to Project"). Разные C/CPP файлы должны компилироваться отдельно. А ты заставляешь компилятор считать, что у тебя есть один больщой CPP-файл. А внесешь в него исправления - что будет? Будет перекомпилироваться ВСЁ сразу. А если подключить к проекту два файла-исходника, то перекомпилируется только тот исходник, который изменялся, экономишь время компиляции. Да и вообще - дело не в экономии времени. Дело - в том, что нельзя делать балаган в программах - они не для этого написаны. Если в данном конкретном случае у тебя подключение обоих файлов решает проблему - это не значит, что такое решение правильное. Это плохой способ.

P.S. Страуструп - это, конечно, хорошо, но не для начинающего...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Прикольно, впервые создал проэкт)
Вроде само файлы *.о посоздавало и подключило.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 31.10.2020 14:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name