Я видел, как люди используют завершающее подчеркивание для переменных-членов в классах, например, в известной C ++ FAQ Lite .
Я думаю, что его цель - не помечать переменные как члены, для этого и используется "m_". Его реальная цель - сделать так, чтобы метод доступа назывался как поле, например:
class Foo {
public:
bar the_bar() { return the_bar_; }
private:
bar the_bar_;
}
Если в аксессорах пропустить часть "get_", это обычное явление в STL и boost, и я пытаюсь разработать стиль кодирования как можно ближе к ним, но я не могу увидеть их, используя трюк с подчеркиванием. Я не смог найти аксессор в STL или boost, который бы просто возвращал приватную переменную.
У меня есть несколько вопросов, надеюсь, вы сможете ответить:
- Откуда это соглашение? Болтовня? Objective-C? Microsoft? Мне интересно.
- Могу ли я использовать завершающее подчеркивание для всех закрытых членов или просто как обходной путь, если я хочу назвать функцию как переменную?
- Можете ли вы указать мне STL или повысить код, который демонстрирует завершающие подчеркивания для переменных-членов?
- Кто-нибудь знает, каковы взгляды Страуструпа на проблему?
- Можете ли вы указать мне на дальнейшее обсуждение вопроса?