Другие языки программирования и технологии
Зачем выносить определение тел функций-членов класса в отдельный *.сpp файл?
Во многих правилах оформления кода это является обязательным требованием (за исключением случая шаблонных функций). Но в этом случае такая функция не может быть встраиваемой и следовательно не может быть оптимизирована компилятором по контексту. Почему часто всё-таки определение и объявление функции разносят по разным файлам? Нужно ли это делать? Какие есть минусы у помешения всего кода в хедеры?
Хедеры и так весьма объемны и плохо обозримы. Если в них еще и коды реализации впихивать, то получается нечто очень тяжелое. Просто создатели C++ старались придерживаться принципа "разделяй и властвуй" - что можно разделить, следует разделить - возможно, несколько выйдя за пределы того, что кажется нам разумным, но нам ли их судить? Они просто старались следовать определенной концепции, которая им представлялась полезной для больших программ.
Я чё непонятно объяснил в прошлом вопросе?
плмоги решить задачку
Написать программу, которая выводит на экран значение функции у =- 3х степень2 1 в диапазоне от -1 до 1 с шагом 0,2
на язаке С (си)
Написать программу, которая выводит на экран значение функции у =- 3х степень2 1 в диапазоне от -1 до 1 с шагом 0,2
на язаке С (си)
>Почему часто всё-таки определение и объявление функции разносят по разным файлам?
Ради повышения читаемости, иногда имеет место сокрытие вспомогательных функций для реализации интерфейсных (смотри anonymous namespaces & static functions)
>Нужно ли это делать?
>Какие есть минусы у помешения всего кода в хедеры?
Стремитесь к повышению читабельности вашего кода, выигрыш в скорости у кода, размещенного полностью в хедере в общем случае ничтожен, а простота и читабельность кода определяют сложность его поддержки, что является сегодня фактором определяющим.
Не пытайтесь сделать за компилятор его работу - оптимизировать (вы удивитесь как сложно его еще обойти в этом вопросе) , по крайней мере пока не поставлены перед фактом, что оптимизация требуется, смотри premature optimization
Ради повышения читаемости, иногда имеет место сокрытие вспомогательных функций для реализации интерфейсных (смотри anonymous namespaces & static functions)
>Нужно ли это делать?
>Какие есть минусы у помешения всего кода в хедеры?
Стремитесь к повышению читабельности вашего кода, выигрыш в скорости у кода, размещенного полностью в хедере в общем случае ничтожен, а простота и читабельность кода определяют сложность его поддержки, что является сегодня фактором определяющим.
Не пытайтесь сделать за компилятор его работу - оптимизировать (вы удивитесь как сложно его еще обойти в этом вопросе) , по крайней мере пока не поставлены перед фактом, что оптимизация требуется, смотри premature optimization
Похожие вопросы
- с++ Для чего в программировании используют несколько файлов cpp? ну замечал в проектах, помимо main есть еще сpp файлы
- Статичная функция внутри класса. какие данные будут доступны всем образцам класса?
- Люди помагите написать программу на с++ с классами и функциями-членов, очень надо допуск к эузамену(((
- Функции и классы в С++
- C++: в чем принципиальная разница между использованием членов класса и указателей на них?
- Помогите найти ответ Что такое открытые (public) члены класса, и в чем заключаются особенности их использования?
- Что такое "член класса" (ООП), зачем нужны и какие бывают виды
- Что такое компьютер? ( Определение для 4 "А" класса)
- С++.Составить программу для определения таблицы значений функции у в произвольном диапазоне [a, b
- Почему в C++ заголовки функций и код принято хранить в отдельных файлах?