C++虚函数和纯虚函数的注意事项

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

//学习笔记


展开阅读全文

没有更多推荐了,返回首页