Другие языки программирования и технологии

Зачем выносить определение тел функций-членов класса в отдельный *.сpp файл?

Во многих правилах оформления кода это является обязательным требованием (за исключением случая шаблонных функций). Но в этом случае такая функция не может быть встраиваемой и следовательно не может быть оптимизирована компилятором по контексту. Почему часто всё-таки определение и объявление функции разносят по разным файлам? Нужно ли это делать? Какие есть минусы у помешения всего кода в хедеры?
Хедеры и так весьма объемны и плохо обозримы. Если в них еще и коды реализации впихивать, то получается нечто очень тяжелое. Просто создатели C++ старались придерживаться принципа "разделяй и властвуй" - что можно разделить, следует разделить - возможно, несколько выйдя за пределы того, что кажется нам разумным, но нам ли их судить? Они просто старались следовать определенной концепции, которая им представлялась полезной для больших программ.
Михаил Шевченко
Михаил Шевченко
22 474
Лучший ответ
Я чё непонятно объяснил в прошлом вопросе?
плмоги решить задачку

Написать программу, которая выводит на экран значение функции у =- 3х степень2 1 в диапазоне от -1 до 1 с шагом 0,2
на язаке С (си)
>Почему часто всё-таки определение и объявление функции разносят по разным файлам?
Ради повышения читаемости, иногда имеет место сокрытие вспомогательных функций для реализации интерфейсных (смотри anonymous namespaces & static functions)
>Нужно ли это делать?
>Какие есть минусы у помешения всего кода в хедеры?
Стремитесь к повышению читабельности вашего кода, выигрыш в скорости у кода, размещенного полностью в хедере в общем случае ничтожен, а простота и читабельность кода определяют сложность его поддержки, что является сегодня фактором определяющим.
Не пытайтесь сделать за компилятор его работу - оптимизировать (вы удивитесь как сложно его еще обойти в этом вопросе) , по крайней мере пока не поставлены перед фактом, что оптимизация требуется, смотри premature optimization