1)纯虚函数声明如下:virtual void function()=0;纯虚函数一定没有定义,用来规范派生类的行为,即接口。包含纯虚函数的类是抽象类,抽象类不能定义实例,但是可以声明指向该抽象类的具体类的指针或者引用;
2)虚函数声明:virtual void function(。。。);虚函数必须实现,如果不实现的话编译器将会报错;
3)对于虚函数,基类和继承类各有各的版本,由多态方式调用的时候进行动态绑定;
4)实现纯虚函数的子类,该纯虚函数在子类中就编程了虚函数,子类的子类可以覆盖该虚函数由多态方式调用的时候哦动态绑定;
5)虚函数是C++中用于实现多态的机制,核心理念就是通过基类访问派生类定义的函数;(指针或引用)
6)在有动态分配堆上的内存时,析构函数必须是虚函数,但是没有必要是纯虚的;
7)友元不是成员函数,只有成员函数才可以是虚拟的,因此友元不可以是虚函数;但是可以通过让友元函数调用虚成员函数来解决友元虚拟的问题;
8)析构函数应该是虚函数,将调用相应对象的析构函数,即如果指针指向的是子类对象,将调用子类的析构函数,然后自动调用基类的析构函数;
9)注意是“有”纯虚函数的类是抽象类,不可以生成对象,只可以派生,由他派生的类的纯虚函数没有重写的话派生类还是一个抽象类;
//部分转载自http://blog.csdn.net/hackbuteer1/article/details/7558868
//学习笔记