tzkr.net
当前位置:首页 >> 在C++类中,有一种类不能生成对象只能被继承,称之为虚基类还是抽象类??? >>

在C++类中,有一种类不能生成对象只能被继承,称之为虚基类还是抽象类???

在C++类中,有一种类不能生成对象只能被继承,称之为________.答案应该是 “抽象类” 或者 “包含纯虚函数的类” .

两个概念没有直接等价关系抽象类不能被实例化,里面一定包含纯虚函数虚基类是虚继承的父类,class b:virtual a{}; a是虚基类

你这有点莫名其妙,不能继承的话把基类的构造函数设为私有就好了,虚继承只是用在多重继承的时候,防止在子类中多次生成基类实例

加上抽象类名:: 类作用域用类作用域

类的方法还没有具体的实现代码,这样的类是不能实例化的你的类的方法肯定还有没有实现的,还不能用

语法上有抽象类和虚基类,不等于你一定要用它.花里胡哨的东西,我通常不用.我能想到的抽象类用处,大概这个优点可以用一用:含有纯虚函数的类都是抽象类.基类中实际上并不使用这个函数,它只是通知编译系统:在这里声明一个虚函

不是所有虚函数,而是所有的纯虚函数,其它的函数可以不重新定义.如果派生类没有重新定义所有的基类的纯虚函数,那么该类也将是抽象类.而如果只是没有重定义虚函数(不是纯虚函数),那只是没有实现多态性,并不是不能定义对象.

C++中没有java中的接口语言结构,C++支持多重继承,而Java的接口是多重继承的替代方案.抽象类在语义上来说是一致的.C++没有纯虚类这种说法.一般C++所说的接口通常指类的公有成员函数,或者指抽象类提供的用户操作模式.C++中还有接口类这个概念,这是指那些封装非面向对象代码或者修改已近存在类的接口的类.

在C++中包含纯虚函数的类(类似其它语言中的抽象类)只能用作派生其它类的基类,而本身不能创建对象.但纯虚函数本身可以有函数体,须在类外定义.如:#include <iostream>using namespace std;class a{ public: a(int i=1):i(i) {} virtual void

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.tzkr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com