首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class A { public: virtual void func1() { cout
有如下程序: #include using namespace std; class A { public: virtual void func1() { cout
admin
2021-05-06
74
问题
有如下程序:
#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();
delete p;
return 0;
}
执行这个程序的输出结果是( )。
选项
A、B1B2
B、A1A2
C、B1A2
D、A1B2
答案
C
解析
本题考查虚函数。虚函数指在基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数。题中定义了一个派生类对象B,并使用类A的对象指针指向B,由于基类A中的func1为虚函数,所以会执行派生类的func1,输出B1,而基类中的func2不是虚函数,所以p->func2()会执行基类的func2,输出A2。故答案为C。
转载请注明原文地址:https://www.kaotiyun.com/show/pLfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:(1)完成构造函数,设置数组元素的个数为0,请在注释//********1********之后添加语句。
有如下程序:#include<iostream>usingnamespacestd;classBase{intx;public;Base{intn=0};x(n){cout<<n;}
对C++编译器区分重载函数无任何意义的信息是()。
有如下类声明:classXA{intx;public:XA(intn){x=n;}};classXB:publicXA{int
当派生类继承一个基类时,默认的继承方式为()。
下列关于模板的表述中,错误的是
一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为()。
设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5。该树中度为3的结点数为
设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为()。
在C++中,实现封装性需借助于()。
随机试题
阅读下面一段古文,解答文后提出的问题。晋侯賞從亡者。介之推不言禄,禄亦弗及。推曰:“獻公之子九人,唯君在矣。惠、懷無親,外内棄之。天未绝晋,必將有主。主晋祀者,非君而誰?天實置之,而二三子以為己力,不亦誣乎!竊人之財猶謂之盗,况貪天之功以為己力乎
摄影床常用滤线栅的比值是
小剂量阿司匹林预防血栓形成的机制是
对下列哪种情况,国家不负赔偿责任?
建筑安装工程费中的材料运杂费是指材料由来源地到()的全部费用。
消防车道边缘距离取水点不宜大于()m。
根据支付结算法律制度的规定,下列经济业务使用的非现金支付工具中,属于结算方式的是()。
Nobody,itseems,wantstobeleftoutofArgentina’scurrentboomintelevisionrealityshows.Afterthesuccessoflocalversi
有以下程序#includemain(){inta[]={10,20,30,40),*p=a,i;for(i=0;i
Ifyouwanttolivelongerandlowertheriskofheartdisease,amovetothemountainsmayhelp.ResearchbyscientistsinGree
最新回复
(
0
)