C++使用纯虚函数提供未实现的函数。当类声明中包含纯虚函数时,则不能创建该类的对象。包含纯虚函数的类只用作基类,要成为抽象基类,必须至少包含一个纯虚函数。原型中的=0使虚函数成为纯虚函数。
ABC描述的是至少使用一个纯虚函数的接口。
继承和动态内存分配:
1、第一种情况:派生类不使用new
此时派生类可以不用再定义显式析构函数、复制构造函数和赋值运算符。
2、第二种情况:派生类使用new
在这种情况下,必须为派生类定义显式析构函数、复制构造函数和赋值运算会。其中复制构造函数要使用成员初始化列表,
总之,当基类和派生类都采用动态内存分配时,派生类的析构函数、复制构造函数、赋值运算符都必须使用相应的基类方法来处理基类元素。这种要求是通过三种不同的方式来满足的。
对于析构函数,这是自动完成的。
对于构造函数,这是通过在初始化成员列表中调用基类的复制构造函数来完成的。
对于赋值运算符,这是通过使用作用域解析运算符显式地调用基类的赋值运算符来完成的。