Несколько файлов и объектно-ориентированное программирование - PullRequest
1 голос
/ 19 октября 2011

В моем приложении я использую несколько файлов, каждый файл содержит класс, это хорошая идея, чтобы собрать все файлы C ++ (реализация всех классов) в один файл и собрать все заголовки в другой файл, или это не хорошо по какой-то причине, но организация кода?

Ответы [ 4 ]

3 голосов
/ 19 октября 2011

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

И не забывайте о ценности организации вещей для людей! Программное обеспечение может состоять из многих тысяч различных объектов, функций и других частей. Сделайте это как можно проще (но не проще)!

1 голос
/ 19 октября 2011

Если вы сохраняете объявление и определения класса в соответствующих файлах, их необходимо перекомпилировать только после внесения изменений в этот класс.Кроме того, изменения в одном классе требуют только повторного связывания измененного класса с классами, которые зависят от него.Поэтому это уменьшает время компиляции.

Это также значительно упрощает отладку, поскольку ошибки компиляции можно отследить до одного файла.

Насколько мне известно, нет преимуществ объединять все файлы в один.

0 голосов
/ 19 октября 2011

Совершенно согласен с другими ответами, и я хотел бы добавить свой кусок:

Разбиение на несколько файлов также облегчает использование редактора. Затем вы можете использовать несколько вкладок. (Представьте, что ваш браузер отображал все ваши страницы одну за другой только в одном окне!)

Можно даже разбить реализацию класса на несколько файлов, если реализация большая.

С другой стороны, иногда есть причины помещать несколько классов в один файл, например, когда эти классы малы и / или очень тесно связаны. Например, FooObject и FooAllocator или FooObject и его маленький FooSubObject , используемый только им.

0 голосов
/ 19 октября 2011

В C ++ это действительно не так важно. В некоторых языках, таких как Java, компилятор требует, чтобы каждый класс находился в отдельном файле, но до тех пор, пока вы убедитесь, что разные файлы ссылаются друг на друга, в любом случае нет причин.

...