对下列知识点进行相关学习:
主要就将纯虚函数作为基类进行程序编写练习
抽象类:
抽象类的一般形式,带有纯虚函数的类称为抽象类:
class 类名 {virtual 类型 函数名(参数表)=0;//纯虚函数}
抽象类只能作为基类来使用。不能声明抽象类的对象,只能声明抽象类的指针。纯虚函数直到被覆盖前所派生的类均为抽象类
抽象类的作用:
抽象类为抽象和设计的目的而建立,将有关的数据和行为组织在一个继承层次结构中,保证派生类具有要求的行为。
对于暂时无法实现的函数,可以声明为纯虚函数,留给派生类去实现。
****注意:
(1)抽象类中可以有多个纯虚函数。
(2)抽象类也可以定义其他非纯虚函数。
(3)从抽象类可以派生出具体或抽象类,但不能从具体类派生出抽象类。
问题:抽象类需要有构造函数和析构函数吗?
抽象类通常代表一个抽象的概念,它提供一个继承的出发点。
在一个复杂的类继承结构中,越上层的类抽象程度越高,有时甚至无法给出某些成员函数的实现,显然,抽象类是一种特殊的类,它一般处于类继承结构的较外层。
引入抽象类的目的,主要是为了能将相关类组织在一个类继承结构中,并通过抽象类来为这些相关类提供统一的操作接口,更好的发挥多态性。
抽象类使得数据结构更加清晰,更加贴近自然
拷贝构造函数
对象的赋值:
一个已知对象赋值给另一个已知对象。
通过对赋值运算符的重载实现的。
浅拷贝:
创建q时,对象p被复制给了q,但资源未复制,使得p和q指向同一个资源,这称为浅拷贝。