Полезно ли использовать суффикс подчеркивания для членов? - PullRequest
24 голосов
/ 27 октября 2009
class C {
 private:
  int member_; // here is the underscore I refer to.
}

Это подчеркивание рекомендуется Руководством по стилю Google и Руководством по стилю Geosoft для C ++ .

Я понимаю, что существуют разные мнения и вкусы.

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

Вот мой ответ:

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

В этом свете я считаю этот стиль вредным.

Ответы [ 13 ]

1 голос
/ 27 октября 2009

есть еще один «стиль», который предлагает объявить учеников следующим образом:

class Foo{
    int m_value;
public:
     //...
};

я нашел его пригодным для использования. но это только моя точка зрения.

0 голосов
/ 27 февраля 2013

Я всегда хочу отличать членов класса от переменных. Я использую _ в качестве префикса для участников, и, лично говоря, это делает код чистым и читаемым. Префиксы прекрасно работают с intellisense редактора. Префикс с помощью m_ или s_ полезен, но для меня это выглядит ужасно.

0 голосов
/ 27 октября 2009

Я согласен с вами, что суффикс переменной подчеркивания - не идеальный стиль кодирования, и что добавление небольшой сложности в конструктор лучше, чем добавление большей сложности по всему классу.

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

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