以下关于纯虚函数的说法,正确的是()A.声明纯虚函数的类不能实例化B.声明纯虚函数的类成虚基类C.子类必须实现基类的D.纯虚函数必须是空函数
纯虚函数只是一个接口,是个函数的声明而已,它要留到子类里去实现。 (2)虚函数在子类里面也可以不重载的;但纯虚函数必须在子类去实现,这就像Java的接口一样。通常把很多函数加上virtual,是一个好的习惯,虽然牺牲了一些性能,但是增加了面向对象的多态性,因为很难预料到父类里面的这个函数不在子类里面不去修改它的...
1)虚函数在子类里面也可以不重载的;但纯虚必须在子类去实现 2)带纯虚函数的类叫虚基类也叫抽象类,这种基类不能直接生成对象,只能被继承,重写虚函数后才能使用,运行时动态动态绑定! 30.深拷贝与浅拷贝 浅拷贝: char ori[]=“hello”;char *copy=ori; 深拷贝: char ori[]="hello"; char *copy=new char...
1.定义纯虚函数时,不能定义纯虚函数的实现部分。即使是函数体为空也不可以,函数体为空就可以执行,只是什么也不做就返回。而纯虚函数不能调用。 (其实可以写纯虚函数的实现部分,编译器也可以通过,但是永远也无法调用。因为其为抽象类,不能产生自己的对象,而且子类中一定会重写纯虚函数,因此该类的虚表内函数一定...
虚函数可以是内联函数,内联是可以修饰虚函数的,但是当虚函数表现多态性的时候不能内联。 内联是在编译器建议编译器内联,而虚函数的多态性在运行期,编译器无法知道运行期调用哪个代码,因此虚函数表现为多态性时(运行期)不可以内联。 inline virtual 唯一可以内联的时候是:编译器知道所调用的对象是哪个类(如 Base::...
若要使派生类为非抽象类,则编译器要求在派生类中,必须对纯虚函数予以重载以实现多态性。同时含有纯虚函数的类称为抽象类,它不能生成对象。 这样就很好地解决了上述两个问题。 例如,绘画程序中,shape作为一个基类可以派生出圆形、矩形、正方形、梯形等, 如果我要求面积总和的话,那么会可以使用一个 shape * 的数...
12. 什么函数不能声明为虚函数? constructor 13. 冒泡排序算法的时间复杂度是什么? O(n^2) 14. 写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 16. Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层/物理层 ...
A.抽象类只能作为基类使用,而纯虚函数的实现由派生类给出B.抽象类是指具有纯虚函数的类C.纯虚函数是一种特殊的虚函数,它允许没有具体的实现D.一个基类的说明中有纯虚函数,则该基类的派生类一定不再是抽象类 2下列关于纯虚函数与抽象类的描述中,错误的是( )。 A.纯虚函数是一种特殊的虚函数,它没有...
C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体 相关知识点: 试题来源: 解析 D [解析] 纯虚函数的声明格式为: virtual函数类型函数名(参数表)=0 拥有纯虚函数的类就叫抽象类,如果在派生类中不实现纯虚函数,则派生类也是抽象类。纯虚函数在派生类可以被重新定义,即可以拥有函数体。