[TOC]
virtual ReturnType FunctionName(Parameter)
第一行为虚函数,第二行为纯虚函数。定义虚函数的目的时允许用基类的指针来调用子类的这个函数
虚函数的作用主要是实现多态。基类定义虚函数,然后子类重写该函数。在子类重写该函数的时候,需要申明该函数为虚函数。
动态联编:父类指针指向子类对象的地址,动态调用子类的重写的虚函数,且这样的调用发生在运行阶段,不是编译阶段,称为动态联编。
virtual ReturnType FunctionName(Parameter) = 0
基类中声明的虚函数,且在基类中无定义,但所有的派生类都需要定义这个纯虚函数的实现方法
纯虚函数出现的原因:
声明了纯虚函数的类是一个抽象类。我们不能创建抽象类的对象,只能创建其子类的对象。
纯虚函数最显著的特征:必须在继承类中重新声明,且其在抽象类中无定义。
定义纯虚函数的目的:使派生类仅仅只是继承函数的接口
构造函数是用来构造对象的,调用构造函数的时候必须知道是谁调用了构造函数。
静态成员函数是该类公用的,与该类对象无关,且静态函数内部无this指针,所以
友元函数与该类无关,无this指针
防止内存泄露
如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行了释放。假设基类中采用是非析构函数,当删除其基类指针指向的怕派生类对象时就不会触发动态绑定,因为只调用基类的析构函数,而不会调用派生类的析构函数。那么派生类中申请的空间就得不到释放而产生内存泄漏。所以C++中基类的析构函数应该采用虚函数模式