楼主:
NilPtr (神奇的空指标)
2014-12-26 00:07:56※ 引述《Ruid (南无地藏王菩萨)》之铭言:
//原文恕删
作者:
s25g5d4 (function(){})()
2014-12-26 00:37:00这 ID... 你今天 GO 了吗
作者:
PkmX (阿猫)
2014-12-26 09:52:00名称开头是双底限是reserved identifier吧...线然后你应该还要帮他加上一个copy ctor/assignment operatorsize() const只是让这个method可以被const intstack使用而已然后(__size == 0)?true:false不就和 size() == 0 一样吗= =
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-12-26 10:52:00同上, 不要用双底线, private member 请用单底线前饰
C++认不得Nil 关键字是nullptr 没问题的 可以当变量(?
楼主:
NilPtr (神奇的空指标)
2014-12-26 13:38:00感谢指教,学到了,确实Private member这样命名很糟糕copy建构式跟assignment运算子的话...请原谅我的偷懒XD
其实单底线前饰也容易撞到雷,我现在看到比较多的做法是单底线后饰,不过我个人偏好前饰好看(?
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-12-26 14:02:00我觉得好看程度 _var > var_ > m_var
楼主:
NilPtr (神奇的空指标)
2014-12-26 14:19:00size() const是为了不要发生类似 size()=5 这种状况
er...该怎么说,size()传回const本身就很奇怪 XD说错 size()传回reference本身就很奇怪 XDconst与否反而比较旁枝末节了吧 虽然立意正确啦...size()不是int就是long,传reference没啥好处啊...的确size()我会宣告前后各一个const 不过原因不是这个const size_t size() const;
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-12-26 14:25:00前面加 const 很怪吧, 别人只是想用还要 const_castfor (size_t i = 0; i < foo.size(); i++) // orz
作者:
PkmX (阿猫)
2014-12-26 14:29:00return value type加const没啥意义size() = 5这种东西本来就是错的 左边不是lvaluesize()后面加const的意义是假设你宣告一个const intStack s;你可以呼叫s.size(); 如果你只有宣告unsigned size(); 那这个method就只能给非const的object使用
诶对椰,我在想什么,size的ret确不该const orz
楼主:
NilPtr (神奇的空指标)
2014-12-26 19:46:00感谢各位的指教与参与讨论┌(_ _)┐上面有两位提到我的ID其实Nil是跟Lua、Ruby挖来的,ptr是纯粹懒得打字XD
作者:
ACMANIAC (請肥宅救救肥宅)
2014-12-26 21:11:00this.var 最好看
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-12-26 22:24:00但 getter 就变 getVar() 超丑
作者:
ACMANIAC (請肥宅救救肥宅)
2014-12-26 23:36:00?! getVar() 看不懂哪里丑,getter 不就这样写吗
楼主:
NilPtr (神奇的空指标)
2014-12-27 19:34:00这只是信仰问题吧,像是STL的Getter不会加get
作者:
ACMANIAC (請肥宅救救肥宅)
2014-12-28 22:12:00喔喔我好像看懂了
其实getter/setter的固定格式是来自于C#(原生)跟Java的hibernate(Java本身没这种惯例),所以放在C++看起来会满奇怪的,因为这本来就不是C++有的东西最早应该是hibernate啦 可能还有更早 反正就变惯例了
作者:
tinlans ( )
2013-01-01 01:34:00为什么你在 Node 知道要用 member initializers 但是在intStack 里面却不使用啊...
楼主:
NilPtr (神奇的空指标)
2013-01-07 19:14:00有喔 ... 我放在空建构式上面,不过我懒惰没对其他建构式做处理,其实会有问题