首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序 #include using namespace std; class A{ public: virtual void func1(){cout
有如下程序 #include using namespace std; class A{ public: virtual void func1(){cout
admin
2016-11-25
26
问题
有如下程序
#include
using namespace std;
class A{
public:
virtual void func1(){cout<<"A1";}
void func2(){cout<<"A2";}
};
class B:public A{
public:
void func1(){cout<<"B1";}
void func2(){cout<<"B2";}
};
int main(){
A*p=new B;
p->func1();
P->func2();
return 0:
}
运行此程序,屏幕上将显示输出( )。
选项
A、B1B2
B、A1A2
C、B1A2
D、A1B2
答案
C
解析
此题考查的是虚函数的概念。此题中,func1是虚函数,func2是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句A*p=new B;定义了一个基类的指针p,并让它指向一个派生类对象。所以通过该指针调用func1时,运行的是派生类的版本,而通过该指针调用func2运行的是基类的版本。所以程序运行的最后输出是:B1A2。
转载请注明原文地址:https://kaotiyun.com/show/yEAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的输出结果是【】。#include<iostream.h>voidmain(){inta=0;a+=(a=8);cout<<a;}
定义如下变量:charone_char,则语句cin>>one_char等价于C语言中的()语句。
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
下面程序错误的语句是①#include<iostream.h>②voidmain()③{④int*p=newint[1]⑤p=9⑥cout<<*p<<end1;⑦
在下面四个选项中,()是用来声明虚函数的。
在C++语言中每个类都有一个【】指针,该指针指向正在调用成员函数的对象。
当要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始处使用#include命令,使之包含()文件。
下面是复数类complex的定义,其中作为友元函数重载的运算符“--”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。classcomplex{private:intreal;iht
在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。
允许用户为类定义一种模式,使得类中的某些数据成员及成员函数的返回值能去任意类型,它属于一个( )。
随机试题
在课堂学习中,()学生多表现得小心谨慎,教师要多创造发言的机会,鼓励他们在课堂上勇敢地表现自己,锻炼胆量的同时提高口语表达能力。
A.丛集性头痛B.脑膜炎头痛C.脑出血头痛D.肿瘤性头痛E.低颅压性头痛继发性头痛是指
健康教育的理想目标是
合同变更的原因包括()。
未经国家有关主管部门批准,擅自设立商业银行的()会受到处罚。
我国社会保险的主要项目有( )。
下列属于间接薪酬的是()。
安史之乱后势力最强、危害最大的“河朔三镇”指的是()。①卢龙镇②魏博镇③淄青镇④成德镇
Whereshouldlargecarry-onitemsbestored?
A、Hehadmuchtroublewithhispronunciation.B、HebeganstudyingEnglishtooearly.C、Noonecanunderstandhim.D、Heknewnoth
最新回复
(
0
)