《高质量c++编程指南》

下载本书

添加书签

高质量c++编程指南- 第12节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!

(4)第四步,返回本对象的引用,目的是为了实现象 a = b = c 这样的链式表达。注意不要将 return *this 错写成 return this 。那么能否写成return other 呢?效果不是一样吗?
  不可以!因为我们不知道参数other的生命期。有可能other是个临时对象,在赋值结束后它马上消失,那么return other返回的将是垃圾。
9。7 偷懒的办法处理拷贝构造函数与赋值函数
如果我们实在不想编写拷贝构造函数和赋值函数,又不允许别人使用编译器生成的缺省函数,怎么办?
偷懒的办法是:只需将拷贝构造函数和赋值函数声明为私有函数,不用编写代码。
  例如:
class A
{ 。。。
  private:
A(const A &a); // 私有的拷贝构造函数
A & operate =(const A &a); // 私有的赋值函数
};
  
  如果有人试图编写如下程序:
A  b(a); // 调用了私有的拷贝构造函数
b = a; // 调用了私有的赋值函数
  编译器将指出错误,因为外界不可以操作A的私有函数。
9。8 如何在派生类中实现类的基本函数
基类的构造函数、析构函数、赋值函数都不能被派生类继承。如果类之间存在继承关系,在编写上述基本函数时应注意以下事项:
* 派生类的构造函数应在其初始化表里调用基类的构造函数。
* 基类与派生类的析构函数应该为虚(即加virtual关键字)。例如
#include 
class Base

  public: 
virtual ~Base() { cout
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架