C++中 抽象类和虚基类用途上有什么区别

RT我知道抽象类不能实例化只想知道除了这点这两者各自有什么特殊用途详细些... RT 我知道抽象类不能实例化 只想知道除了这点 这两者各自有什么特殊用途 详细些 展开
 我来答
金色潜鸟
推荐于2018-04-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5694万
展开全部
语法上有抽象类和虚基类,不等于你一定要用它。花里胡哨的东西,我通常不用。

我能想到的抽象类用处,大概这个优点可以用一用:
含有纯虚函数的类都是抽象类。基类中实际上并不使用这个函数,它只是通知编译系统:
在这里声明一个虚函数,留待在派生类中定义。为一个类族提供一个公共接口。
例如,计算平面形状的面积,抽象类 基类中 virtual float area( ) const =0;
派生类三角形,派生类圆 各自定义了 area( ) 具体的计算。一旦有了派生的三角形或圆,我们可以用同样的函数名.area( ) 计算面积。

虚基类,它的构建要在派生类里做,而且先于派生类自己的构建。当有派生类1,派生类2,生成的派生类12时,派生类12只执行一次虚基类的构建。虚基类的对象只有唯一一个。至于它有什么特殊用途,没想到。
du小虾
2012-06-15 · TA获得超过497个赞
知道小有建树答主
回答量:373
采纳率:57%
帮助的人:211万
展开全部
虚基类是相对于它的派生类而言的,它本身可以是一个普通的类。
只有它的派生类虚继承它的时候,它才称作虚基类,如果没有虚继承的话,就称为基类。比如类B虚继承于类A,那类A就称作类B的虚基类,如果没有虚继承,那类B就只是类A的基类。
虚继承主要用于一个类继承多个类的情况,避免重复继承同一个类两次或多次。
例如 由类A派生类B和类C,类D又同时继承类B和类C,这时候类D就要用虚继承的方式避免重复继承类A两次。
而抽象类是指带有有一个或一个以上的纯虚函数的类。抽象类一般值用于继承,不能定义类对象,但可以定义类指针和引用

参考资料: http://zhidao.baidu.com/question/73792183.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式