Я видел, как люди используют конечный знак подчеркивания для переменных-членов в классах, например, в известном С++ 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 или повышающий код, который демонстрирует завершающие символы подчеркивания для переменных-членов?
- Кто-нибудь знает, что представляют собой взгляды Страустрапа на вопрос?
- Можете ли вы указать мне на дальнейшее обсуждение проблемы?