Fork me on GitHub
摘要: 1.自我赋值是如何发生的 当一个对象委派给自己的时候,自我赋值就会发生: 这看上去是愚蠢的,但这是合法的,所以请放心,客户端是可以这么做的。此外,自身赋值也并不总是很容易的能够被辨别出来。举个例子: 上面的代码在i和j相等的情况下就是自我赋值,同样的,看下面的例子: 如果px和py恰巧指向同一个东西 阅读全文
posted @ 2017-02-15 23:48 HarlanC 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 一个关于赋值的有趣的事情是你可以将它们链在一起: 同样有趣的是赋值采用右结合律,所以上面的赋值链被解析成下面这个样子: 在这里,15被赋值给z,然后赋值的结果(更新的z)被赋值给y,再然后赋值的结果(更新的Y)被赋值给x。 实现这个赋值链的方法是使赋值返回指向左边参数的引用,这也是你在为你的类实现赋 阅读全文
posted @ 2017-02-15 23:42 HarlanC 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 1.关于构造函数的一个违反直觉的行为 我会以重复标题开始:你不应该在构造或者析构的过程中调用虚函数,因为这些调用的结果会和你想的不一样。如果你同时是一个java或者c#程序员,那么请着重注意这个条款,因为这是c++同它们不一样的地方。 假设你已经有一个为股票交易建模的类继承体系,它可以买卖股票等。这 阅读全文
posted @ 2017-02-15 00:04 HarlanC 阅读(1157) 评论(0) 推荐(0) 编辑