6.虚拟函数与多态性
面向对象程序设计的第三大特征就是多态性。多态性一般指同一事物有多种形态。因此,可以认为函数重载和运算符重载是多态性的最简单形式。
6.1派生类与基本类的转换
在继承的关系下,C++允许派生类对象可以直接转化为public基本类对象。事实上,不是只有派生类对象可以直接转换为public基本类对象,派生类的引用体和只想派生类的指针对象都可以直接转换为public基本类相对应的类型。
6.2虚拟函数
通过使用虚拟函数,可以很容易地实现动态链接。我们修改前面的代码,在Base类的Show成员你函数原型的最前面增加一个关键字virtual:
class Base
{
public:
Base(){};
virtual void Show()
{
cout<<"调用Base类的Show"<<endl;
}
}
6.3虚拟函数的调用·
调用某类的虚拟函数必须通过该类所定义的对象的指针或者引用体才可以达到动态链接的效果。一般调用虚拟函数都是通过该虚拟函数的第一次被定义的基本类的对象。
6.4虚拟函数与继承的关系
6.5虚拟函数的数据封装
6.6纯虚拟函数与抽象类
7.输入/输出流
在程序设计过程中,输入和输出(I/O)操作是不可缺少的。我们知道,I/O操作实际上处理的是设备之间的数据交换(设备可以是文件,内存,屏幕,键盘,通信卡等)面向对象技术中,任何设备都可以表示为相应类的对象,设备之间的数据传送也就是对象之间的数据传送。
7.1预定义数据类型的格式化输入/输出
7.2自定义数据类型的输入与输出
7.3文件输入/输出