Несколько классов в файле заголовка против одного файла заголовка на класс - PullRequest
67 голосов
/ 26 августа 2008

По какой-то причине у нашей компании есть руководство по кодированию, которое гласит:

Each class shall have it's own header and implementation file.

Поэтому, если бы мы написали класс с именем MyString, нам потребовалось бы связать MyStringh.h и MyString.cxx .

Кто-нибудь еще делает это? Кто-нибудь видел какие-либо последствия для производительности компиляции в результате? 5000 классов в 10000 файлах компилируются так же быстро, как 5000 классов в 2500 файлах? Если нет, то заметна ли разница?

[Мы кодируем C ++ и используем GCC 3.4.4 в качестве нашего повседневного компилятора]

Ответы [ 13 ]

1 голос
/ 18 сентября 2008

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

0 голосов
/ 24 марта 2019

Два слова: бритва Оккама. Храните один класс на файл с соответствующим заголовком в отдельном файле. Если вы делаете иначе, например, сохраняя часть функциональности для каждого файла, тогда вам нужно создать все виды правил о том, что составляет часть функциональности. Можно получить гораздо больше, сохраняя один класс на файл. И даже наполовину достойные инструменты могут обрабатывать большое количество файлов. Проще говоря, мой друг.

0 голосов
/ 26 августа 2008

Здесь применяется то же правило, но оно отмечает несколько исключений, где оно разрешено. Так:

  • Наследование деревьев
  • Классы, которые используются только в пределах очень ограниченной области
  • Некоторые утилиты просто помещаются в общий 'utils.h'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...