Конечные подчеркивания для переменных-членов в C ++

Я видел, как люди используют завершающее подчеркивание для переменных-членов в классах, например в известной C ++ FAQ Lite .

Я думаю, что его цель - не помечать переменные как элементы, вот для чего "м_". Его реальная цель - сделать так, чтобы метод доступа назывался как поле, например:

class Foo {
public:
    bar the_bar() { return the_bar_; }
private:
    bar the_bar_;
}

Когда методы доступа пропускают часть «get_», это часто встречается в STL и boost, и я пытаюсь разработать стиль кодирования. как можно ближе к ним, но я не могу видеть их, используя трюк с подчеркиванием. Я не смог найти метод доступа в STL или Boost, который бы просто возвращал приватную переменную.

У меня есть несколько вопросов, на которые, я надеюсь, вы сможете ответить:

  1. Откуда взято это соглашение? Болтовня? Objective-C? Microsoft? Мне любопытно.
  2. Могу ли я использовать завершающее подчеркивание для всех закрытых членов или просто как обходной путь, если я хочу назвать функцию как переменную?
  3. Можете ли вы указать мне STL или повысить код, который демонстрирует завершающие подчеркивания для переменных-членов?
  4. Кто-нибудь знает, каковы взгляды Страуструпа на проблему?
  5. Можете ли вы указать мне на дальнейшее обсуждение проблемы?

42
задан artm 6 April 2019 в 00:24
поделиться