2017年4月7日

赋值重载的约定(1)

摘要: 为了实现连锁赋值,赋值操作符必须返回一个引用指向左侧实参。(约定俗成) int x,y,z; x=y=z=20; so: weight& operator=(const weight& a) { ........... return *this;//返回左侧对象 } 注意:这只是一个协议,并无强制性 阅读全文

posted @ 2017-04-07 21:31 邗影 阅读(159) 评论(0) 推荐(0) 编辑

不要在构造和析构函数中调用虚函数

摘要: 构造函数中不能有虚函数的原因: 原因一:基类构造期间虚函数不会下降到派生类阶段,也就是本身我们声明一个派生类对象,它应该先去调用基类的构造,若此时基类构造里面有虚函数,则这个虚函数是基类的虚函数,而不是继而到派生类里的虚函数。(即:要求使用对象内部尚未初始化的成分。。。错误的) 原因二:在派生类构造 阅读全文

posted @ 2017-04-07 21:22 邗影 阅读(244) 评论(0) 推荐(0) 编辑

构造,析构 cpp

摘要: 一 构造析构常识: 1,c++ 处理类,若没有声明,则编译器默认声明构造,拷贝赋值,拷贝构造,析构函数。所有这些函数都是public且inline的。 2,编译器产出的析构函数是非虚函数。(non-virtual)。 3,拷贝构造和拷贝赋值函数作用就是拷贝非静态成员变量到目标对象处。 4,如果打算在 阅读全文

posted @ 2017-04-07 16:55 邗影 阅读(302) 评论(0) 推荐(0) 编辑

导航