在第八章学习了运算符的重载,对运算符的重载操作可以更方便自由的进行对运算符的使用,运算符重载的定义是对现有的运算符进行重新定义,给他不同的功能,以适用不同的数据类型,重载运算符的基本形式:
返回类型 operator运算符号(形式参数列表)
{
函数
}
:: . .* ?:这四个运算符不能重载;
当运算符重载为成员函数时,运算符函数的形式参数的个数比运算符规定的运算个数要少一个。
当运算重载函数为友元函数时,运算符函数的形式参数的个数要和运算符规定的
运算对象的个数一样。
对输入输出运算符进行重载为:
friend ostream& operator<<(ostream& os,const Book& c)
{os<<c.a<<" "<<c.b<<" "<<c.d<<" "<<c.e<<endl;return os;}
friend istream& operator>>(istream& is,Book& c)
{is>>c.a>>c.b>>c.d>>c.e;return is;}
在第九章学习了类的组合和继承;
在基类的形式上在对派生类进行定义。
派生类的定义:
class 派生类名:继承方式 基类名
{
派生类增加的函数
}
派生类不能访问基类的private的成员,如果要访问,就应该将private改为protected形式。
基类的析构函数和构造函数不能被继承
在第十章学习了虚函数和多态性
虚函数和多态性都是在派生类的基础上延伸的,
虚函数的声明:
virtual 返回类型 成员函数名(参数表)
虚函数必须是类的成员函数
虚函数可以是另一个类的友元
析构函数可以是虚函数,构造函数不能是
派生类应该从它的基类公有派生
应先在基类中定义虚函数
派生类对基类中声明虚函数重新定义时,关键字 virtual可以不写
一般通过基类指针访问虚函数时才能体现多态性
一个虚函数无论被继承多少次,保持其虚函数特性
虚函数必须是其所在类的成员函数,而不能是友元函数
纯虚函数是一种让所有派生类都引用的函数,具体自己不实现作用