Лучшие практики в Visual Studio C ++ - PullRequest
2 голосов
/ 26 марта 2009

Кажется, Visual Studio хочет поместить код конструктора класса и код обработки событий в файл .h. Я принимал участие только в небольших проектах, состоящих из одного человека, и мне было интересно, каков общий отраслевой стандарт.

Для проектов приложений Visual C ++, какой код будет помещен в файл .h? Я привык к режиму классического C ++ способа объявления вашего класса в файле .h и кодирования в файле .cpp. Применимо ли это к приложениям Visual Studio?

У меня сильный C-фон, который объяснил бы мое предпочтение этому. Компилятор VSC ++, похоже, не против.

Короче говоря: что нужно поместить в файл какого типа?

ТИА Завершает

Ответы [ 4 ]

3 голосов
/ 26 марта 2009

Если вы используете MFC и говорите о сгенерированном коде, лучше оставить его в покое.

Если вы пытаетесь сделать «нормальную» разработку на C ++, поместите в заголовок как можно меньше информации, поскольку это означает, что код клиента не зависит от слишком большого количества деталей реализации. То, с чем вы можете справиться, зависит от использования шаблонов и от того, насколько косвенным образом может поддерживаться ваш бюджет производительности.

3 голосов
/ 26 марта 2009

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

Вы также должны принять во внимание стоимость использования ваших инструментов. Поскольку мастера VC ++ настаивают на размещении функций в заголовках, вы должны перемещать их каждый раз, если не согласны.

Я бы сказал, это действительно зависит от проекта.

2 голосов
/ 26 марта 2009

Для проектов приложения Visual C ++ какой код можно было бы вставить в .h файл? Я привык к моде классической C ++ способ объявления вашего класса в Файл .h и кодирование в файле .cpp. Применимо ли это к Visual Studio? приложения?

Коротко: Да Долго: зависит от человека или языка. В c ++ заголовок предназначен для объявления, а cpp - для кодирования. Для C # у вас есть один файл (или, если вы используете интерфейсы, 2)

1 голос
/ 26 марта 2009

Это может показаться незначительным, но просто запомните: заголовки # включены в нескольких местах. (И заголовки, включая заголовки, еще больше усложняют ситуацию.) Каждый раз, когда вы меняете заголовок, многие файлы собираются снова. Сохранение минимального количества часто меняющегося кода в заголовке уменьшает перекомпиляцию зависимых файлов.

Еще одна вещь: незагроможденный заголовочный файл дает вам быстрый обзор того, что может предложить класс / форма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...