您的位置:首页 > 编程语言 > C语言/C++

C++ 虚函数和纯虚函数总结

2014-03-09 23:08 453 查看
一 定义

虚函数: 通过虚函数基类可以使用派生类的虚函数方法.  C++多态的一种.

纯虚函数: 功能同上,只是没有函数实现.

二 总结

虚函数: 如果基类中声明了有虚函数,则该类的对象以及该类派生类的对象都会有一个虚函数表,并且虚函数表位于对象所在内存的最前面.

纯虚函数: 当虚函数为类的析构函数时, 纯虚函数也必须要实现. 因为析构函数最终是要调用的. 

在分析虚函数时,必须要结合基类和派生类的调用方式来分析.因为当不存在基类通过派生类对象的指针来调用虚函数时,是无法判断虚函数和非虚函数有何区别的.

下面给出一个例子:

class A

{

public:

A();

virtual ~A();

virtual void describe();

}

class B: public A

{

public:

B();

~B();

virtual void describe();

}

A *p = new B();

p->describe();
调用的是B的方法

delete p;
释放空间时,首先调用的是~B() 然后是~A(), 如果A没有定义虚析构,则调用为 ~A() 而不会调用~B();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息