任务:
纯虚数:
只是在基类中声明的虚函数,并没有定义,在基类中无函数体,
只有在派生类中定义实现方法(函数体)后才能被调用,
定义格式:
virtual 函数类型 函数名(形参列表)=0;
抽象类:
不能产生对象的类为抽象类,含有纯虚函数的类不能创建对象
抽象类虽然不能够产生对象,但可以作为基类派生出能产生对象的类
若在派生类中重写从抽象类继承来的纯虚函数的函数体,则成为普通的虚函数,
派生类就可以产生对象;
重写后的虚函数可以实现动态多态性
友元函数:
定义:
friend 函数类型 函数名(形参列表)
{
函数体
}
;
friend 函数类型 函数名(形参列表);//类体中说明
函数类型 函数名(形参列表)
{
函数体
}//类体外定义
注意:
(1)友元函数的声明出现在类中任何地方的效果是相同的
(2)友元函数的形参通常是类的对象、对象的引用或指针
(3)可提高程序的运行效率,但破坏了类的封装性,谨慎使用
(4)友元函数应该直接调用,不能通过对象调用
(5)友元关系不具有继承性
友元类:
类C中将类B说明为友元,则类B称为类C的友元类,友元类B的所以成员函数均为类C的友元函数。