摘要: 问题聚焦:自我赋值看似有点愚蠢的行为,其实总会发生的首先:它是合法的,其次,它不一定是安全的,再次,它有时候不是那么明显。先看一个Democlass Widget { ... };Widget w;... /** 最明显的自我赋值 **/w = w; /** 不那么明显的自我赋值 **/// 在某个地方实现了i = j或者相同作用的事情a[i] = a[j]/** 潜在的自我赋值 **/*px = *py;/** 更为隐蔽的自我赋值“别名” **/class Base { ... };class Derived : public Base { ... };void doSomething(.. 阅读全文
posted @ 2013-12-30 20:07 suzhou 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 问题聚焦:这个准则比较简短,但是往往就是这种细节的地方,可以提高你的代码质量。细节决定成败,让我们一起学习这条重载赋值操作符时需要遵守的准则吧。还是以一个例子开始:Demo// 连锁赋值x = y = z = 15;// 上面的表达式等价于x = ( y = ( z = 15 ) );为了实现上述的... 阅读全文
posted @ 2013-12-30 18:38 suzhou 阅读(274) 评论(0) 推荐(0) 编辑