【2012面试准备】2012.10.26面试准备

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bandaoyu/article/details/83312743

C++

1、什么纯虚函数?

 

首先,二者申明不一样。
virtual void test(void);//虚函数  
virtual void test(void) = 0;//纯虚函数

其次,如果一个类包含了一个纯虚函数(哪怕只有一个是纯虚函数),那么它就是一个抽象类——就是不能生成具体的对象!但如果类中只包含虚函数,那么是可以定义具体的对象的!


但二者又有一个相同点:都必须在子类中覆盖申明的虚函数!而不管是虚还是纯虚!

 

使用虚函数,我们可以灵活的进行动态绑定,当然是以一定的开销为代价。 如果父类的函数(方法)根本没有必要或者无法实现,完全要依赖子类去实现的话,可以把此函数(方法)设为virtual 函数名=0 我们把这样的函数(方法)称为纯虚函数。
也就是说,虚函数 ,子类可以不重写,直接继承父类 的方法来使用,也可以重写
但是 纯虚函数是子类是必须重写了才可以使用

 

实际上我个人认为纯虚函数的引入,是出于两个目的,
1.为了安全.因为避免任何需要明确但是因为不小心而导致的未知的结果.
提醒子类去做应做的实现.
2.为了效率,不是程序执行的效率,而是为了编码的效率

 

 

虚函数可是实现方法
纯虚函数没有函数体,也就是不能实现方法,只能给后面的派生类供声明,后面跟着=0;
有纯虚函数一般为抽象基类
 
 
展开阅读全文
博主设置当前文章不允许评论。

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