Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542869
  • 博文数量: 78
  • 博客积分: 1913
  • 博客等级: 上尉
  • 技术积分: 829
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-14 21:29
文章分类

全部博文(78)

文章存档

2011年(27)

2010年(26)

2009年(20)

2008年(5)

我的朋友

分类: C/C++

2010-08-18 18:04:03

很少用到这些知识,即使是经常写c++程序,对这些概念可能都处于模糊不清的状态。如果你觉得你明白,那你能一定能清晰的回答如下几个问题:

1:虚基类是独立存在的一个类吗?如果是,它有什么特征?

2:虚基类就是抽象类吗?

3:抽象类是不是只能做为基类?

4:虚函数与虚拟继承有什么关系?





















答案:

虚基类,并不是一个单独存在的类,顾名思义,之所以叫“基类”是因为它发生了派生的动作,“虚”刚表明它是以virtual关键字被继承的,也就是说有了虚拟继承才有虚基类。如此一来,任何一个类都可以做为虚基类。

虚基类的作用:当继承关系呈现出菱形◇关系时,最上层基类将会在最下层类中产生两份数据拷贝,当使用最下层类访问上层基类的数据时将产生二义性,虚基类的作用便是消除这种二义性。

所以,虚基类和抽象类没有关系,抽象类是指含有至少一个纯虚函数的类。抽象类只能用作基类,不能实例化。

虚函数的作用却是用来实现动态联编,实现c++的多态性特性,如此一来,一条指令可实现多种功能。基类指针指向子类对象的引用这一功能在此可发挥得淋漓尽致。



阅读(1638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~