变量名后面加下划线是什么命名规则?

visionfans 2014-03-20 01:30:16
class ScopeGuard
{
public:
explicit ScopeGuard(std::function<void()> onExitScope)
: onExitScope_(onExitScope), dismissed_(false)
{ }

~ScopeGuard()
{
if(!dismissed_)
{
onExitScope_();
}
}

void Dismiss()
{
dismissed_ = true;
}

private:
std::function<void()> onExitScope_;
bool dismissed_;


private: // noncopyable
ScopeGuard(ScopeGuard const&);
ScopeGuard& operator=(ScopeGuard const&);
};


这种private成员变量后面加下划线是常见的风格吗?
...全文
4769 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
duxiuxing 2016-06-16
  • 打赏
  • 举报
回复
引用 6 楼 looklzg1108 的回复:
是的,这种下划线命名方式,真的很难使用。工作很多年,今年跳槽,现在的公司就是用下划线表示成员变量。 只知道他是成员变量,看不出来他的类型和其他信息。
如果用notepad之类的来写代码的话,的确是个问题。如果是用Visual Studio、Eclipse、Xcode这些IDE的话,命名是否包含类型信息不是个问题。 我比较想知道如果成员变量是末尾加下划线,那全局变量和静态变量呢?
looklzg1108 2016-01-13
  • 打赏
  • 举报
回复
是的,这种下划线命名方式,真的很难使用。工作很多年,今年跳槽,现在的公司就是用下划线表示成员变量。

只知道他是成员变量,看不出来他的类型和其他信息。
飞天御剑流 2014-03-20
  • 打赏
  • 举报
回复
源自于编译器设计行业的惯用风格,表示底层实现,后来延伸到类的设计,表示类的底层实现。
zhuyf87 2014-03-20
  • 打赏
  • 举报
回复
我也一直这样用,“变量名+下划线”命名成员变量,用于和函数里面的普通局部变量做区分。 每个人、每个公司都有自己的习惯或规范吧,比如匈牙利命名法则的m_xxx。
visionfans 2014-03-20
  • 打赏
  • 举报
回复
引用 1 楼 baihacker 的回复:
记得在loki和chromium经常这样干,用来表示成员。
原来是Google Coding Style里主张的 http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Variable%5FNames
引用
Class Data Members Data members (also called instance variables or member variables) are lowercase with optional underscores like regular variable names, but always end with a trailing underscore.
string table_name_;  // OK - underscore at end.
string tablename_;   // OK.
visionfans 2014-03-20
  • 打赏
  • 举报
回复
看了网上的一些讨论,编码风格中,关于下划线的使用规范,还不是很统一
baihacker 2014-03-20
  • 打赏
  • 举报
回复
记得在loki和chromium经常这样干,用来表示成员。

65,167

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧