C++的多态性
多态性是使系统易于拓展。
虚函数:基类用virtual声明,类外定义时不必再加virtual,派生类中与基类函数同名时,也自动成为虚函数。基类析构函数为虚函数时,指针指的同一类族中的类对象时,系统会采用动态关联————先调用派生类析构,再调用基类析构。
*:一般将基类析构函数声明为虚析构函数。
*:构造函数不能声明为虚函数
纯虚函数:virtual 函数定义 =0
"=0"是告诉编译器这是纯虚函数。
包含纯虚函数是抽象类,只能做为基类,丧失定义对象的能力,专门用来被继承。
派生类对所有纯虚函数都进行定义,才转化为具体类,否则仍然没有定义对象的能力。
输入输出流
cerr和clog流对象都是标准错误流,都只能在显示器上输出,但是cerr的输出不经过缓冲区,而clog的输出在缓冲区,缓冲区满后或者遇到endl时向显示器输出。
cin.get
cin.get(无参) : 作用相当于getchar()
cin.get(char a): 赋值给a;
cin.get(char *,n,char b):读n-1个字符赋给字符数组,若在n-1前遇到指定终止字符b,则结束读取,并且扔掉终止字符。
异常处理
try
{
被检查语句
throw 异常
}
catch(异常1)
{
处理语句
}
catch(异常2)
{
处理语句
}
......
异常引发和处理机制是分离的,所以底层函数只需解决问题,异常交给上层函数处理。
注意事项:
1.被检测函数必须在try语句块中。
2.try和catch作为整体出现,且两个块必须都用花括号括起来。
3.一个try—catch结构只有一个try,可以有多个catch,catch()中只写异常信息的类型。
4.找不到异常处理的方法则交由系统终止程序。