Re: [问题] 函数呼叫传参数

楼主: 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 请用单底线前饰
作者: Killercat (杀人猫™)   2014-12-26 13:12:00
C++认不得Nil 关键字是nullptr 没问题的 可以当变量(?
楼主: NilPtr (神奇的空指标)   2014-12-26 13:38:00
感谢指教,学到了,确实Private member这样命名很糟糕copy建构式跟assignment运算子的话...请原谅我的偷懒XD
作者: Killercat (杀人猫™)   2014-12-26 13:49:00
其实单底线前饰也容易撞到雷,我现在看到比较多的做法是单底线后饰,不过我个人偏好前饰好看(?
作者: uranusjr (←這人是超級笨蛋)   2014-12-26 14:02:00
我觉得好看程度 _var > var_ > m_var
楼主: NilPtr (神奇的空指标)   2014-12-26 14:19:00
size() const是为了不要发生类似 size()=5 这种状况
作者: Killercat (杀人猫™)   2014-12-26 14:22:00
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:00
return value type加const没啥意义size() = 5这种东西本来就是错的 左边不是lvaluesize()后面加const的意义是假设你宣告一个const intStack s;你可以呼叫s.size(); 如果你只有宣告unsigned size(); 那这个method就只能给非const的object使用
作者: Killercat (杀人猫™)   2014-12-26 17:41:00
诶对椰,我在想什么,size的ret确不该const orz
楼主: NilPtr (神奇的空指标)   2014-12-26 19:46:00
感谢各位的指教与参与讨论┌(_ _)┐上面有两位提到我的ID其实Nil是跟Lua、Ruby挖来的,ptr是纯粹懒得打字XD
作者: ACMANIAC (請肥宅救救肥宅)   2014-12-26 21:11:00
this.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
喔喔我好像看懂了
作者: Killercat (杀人猫™)   2014-12-28 23:16: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
有喔 ... 我放在空建构式上面,不过我懒惰没对其他建构式做处理,其实会有问题

Links booklink

Contact Us: admin [ a t ] ucptt.com