Форум программистов, компьютерный форум CyberForum.ru

Раздельная компиляция (нюансы использования заголовочных файлов и файлов реализации) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка по алфавиту http://www.cyberforum.ru/cpp-beginners/thread1633397.html
#include <iostream> #include<cstring> using namespace std; int main() { int i,j,s=1,k=0,space=0,n; char str,str1; cout<<"Введите слова: "; gets(str1);
C++ Вычислить сумму чисел в текстовой строке Ввести символьную строку, содержимое которой – несколько целых чисел. Вычислить сумму этих чисел. Строку и полученную сумму вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread1633390.html
Обменять элементы главной диагонали заданной квадратной матрицы, с элементами её первого столбца C++
Составить программу обмена в матрице A элементов, находящихся на главной диагонали, с соответствующими элементами первого столбца.
Компиляция в g++ из MinGW C++
Добрый день! После скачивания и установки MinGW пытаюсь скомпилировать простую программу из разряда Hello, World! Набирая в командной строке g++ hello.cpp -o hello.exe получаю сообщение об ошибке g++: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found compilation terminated Запускаю: g++ -print-search-dirs в ответ получаю
C++ STL, что такое iterator? http://www.cyberforum.ru/cpp-beginners/thread1633337.html
Взываю о помощи ко всему прогрессивному человечеству, Что это: vector<float>::iterator iter;
C++ Правильное удаление массива по указателю из списка Не удаляется массив символов в структуре. Комментарий в коде удаления. Структура: struct pointDir { char *data; pointDir *next; подробнее

Показать сообщение отдельно
hoggy
6368 / 2586 / 451
Регистрация: 15.11.2014
Сообщений: 5,717
Завершенные тесты: 1
07.01.2016, 14:17     Раздельная компиляция (нюансы использования заголовочных файлов и файлов реализации)
Цитата Сообщение от SergioO Посмотреть сообщение
почему не определить сразу в классе?
1.
что бы не загромождать декларацию.

хэдер - "заголовок" по другому.
как оглавление в книге.
смотришь на прототипы, и сразу понятно,
что есть в классе, а чего нет.
это - удобно.

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

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

это плохо для времени компиляции.


3.
сокрытие кода.

можно собрать библиотеку, и распространять её,
например, в виде product.h и product.lib
хэдер по прежнему будет содержать исходный код в виде текста,
в то время, как product.lib - там уже бинарные данные.
без специальных приседаний будет не понятно,
что там внутри.


в общем, если вкратце:
стремятся по максимуму вынести с хэдеров в cpp файл.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru