Конвенция стиля C++: названия параметра в рамках объявления класса

Вы можете установить действие формы динамически с помощью Javascript после загрузки страницы.

Пример:

var frm = document.getElementById('login_form');
var domain = "@camosoft.cz";
var action = "https://login.szn.cz//?returnURL=https://email.seznam.cz/&serviceId=email&" + domain
if(frm) {
   frm.action = action;
}
5
задан Scott 21 April 2009 в 07:51
поделиться

7 ответов

Гораздо лучше использовать имена параметров в объявлении и использовать правильные имена параметров. Таким образом, они служат функциональной документацией. В противном случае вам придется писать дополнительные комментарии в заголовке, и всегда лучше использовать правильные имена параметров / переменных, чем использовать комментарии.

Исключение: когда функция должна иметь определенную сигнатуру по внешним причинам, но параметры на самом деле не используются. В этом случае вам также не следует указывать их имена в реализации.

19
ответ дан 18 December 2019 в 06:12
поделиться

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

4
ответ дан 18 December 2019 в 06:12
поделиться

Intellisense / autocomplete / независимо от того, что есть в средах разработки, обычно видит только объявление и будет показывать его как автозаполнение. Поэтому, если вы не объявляете имена в объявлении, пользователи не увидят их в автозаполнении, если не пойдут и не прочитают источник. Возможно, это терпимо, но не очень удобно.

3
ответ дан 18 December 2019 в 06:12
поделиться

Если вы когда-нибудь выпустите свой код в виде librray со связанным файлом .h, ваши пользователи никогда не увидят определение, только декларация, добавляющая на себя бремя документации exztra.

0
ответ дан 18 December 2019 в 06:12
поделиться

Да, нет необходимости называть параметры в файле .h. Заголовочный файл должен представлять интерфейс, поэтому он не должен содержать ненужных деталей.

HTH

-1
ответ дан 18 December 2019 в 06:12
поделиться

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

Единственный раз, когда я отказываюсь от имени параметра, это когда мне нужно реализовать функцию обратного вызова сторонней библиотеки, и я не использую один из параметров. Даже тогда я бы сделал:

 my_callback(int idx, Context* /*ctx*/)  { ...

, чтобы я хорошо знал подпись.

1
ответ дан 18 December 2019 в 06:12
поделиться

С одной стороны, я чувствую, что это избыточно называть переменные в как декларация (.h), так и определение (.cpp). Особенно с Вы должны беспокоиться об обновлении имена в обоих местах, чтобы они match.

Вам не нужны имена, чтобы соответствовать буквально . Заголовочный файл, который определяет интерфейс, работает немного как несовершенный контракт (несовершенный, потому что он не содержит предварительных условий и постусловий, если вы не записываете их в комментариях) и «руководство вызывающего абонента». Вызывающий класс захочет узнать, каковы параметры в 99% случаев. По крайней мере, чтобы он знал, что происходит. Таким образом, вы должны выбрать имя параметра, которое имеет смысл для вызывающей стороны. Это не должно совпадать с именем в cpp. Однако это не имеет большого значения, потому что я обычно копирую / вставляю сигнатуры функций из .h в .cpp. Для меня программирование на C ++ подразумевает эту ручную часть.

С другой стороны, без имен, это часто бывает сложно определить какие переменные параметры соответствовать просто глядя на декларация.

Это хорошая рука.

0
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: