0 引言
本文介绍c++中的虚函数、纯虚函数,继承及多态等。
1 基本概念
- 虚函数
- 定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
- 通常不能在对象中直接调用该类的虚函数。
-
class A { public: virtual void foo() { cout<<"A::foo() is called"<<endl; } }; class B:public A { public: void foo() { cout<<"B::foo() is called"<<endl; } }; int main(void) { A *a = new B(); a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的! return 0; }
- 纯虚函数
- 定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
- virtual void funtion1()=0
- 继承
- 多态
- 友元: 定义在类外部的普通函数或者类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字 friend. 友元不是成员函数,但是它可以访问类中的私有成员。