05C++默认编写哪些函数
默认构造函数,拷贝构造函数,拷贝赋值运算符,析构函数
什么情况下自动生成的=不能用?
06不想用自动生成的函数
前提知识:
- 编译器产生的函数都是public的
- 基类的函数是private则,派生类就不能生成
方式1:把自动生成的函数声明为private,不实现
方式2:专门定义一个基类,不想用的函数在基类定义为private,在继承基类即可,class son:private father{…}
07为多态基类声明虚析构函数
问题引出
解决方法一:
解决方法二:
纯虚函数法
//定义一个基类
class A{
public:
virtual ~A()=0;//声明,纯虚函数
}
A::~A(){}//定义,给派生类用,所以要定义
总结:通过基类接口处理派生类对象,仅限有多态性质的基类