首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B{ public: virtual void f(){cout
有如下程序: #include using namespace std; class B{ public: virtual void f(){cout
admin
2020-07-30
9
问题
有如下程序:
#include
using namespace std;
class B{
public:
virtual void f(){cout<<"B";}
void g(){cout<<"B";}
};
class D:public B{
public:
void f(){cout<<"D";}
void g(){cout<
};
void h(B*p){p->f();P->g();}
int main(){
D obj;
h(&obj);
return 0;
}
运行这个程序的输出结果是( )。
选项
A、DD
B、BB
C、BD
D、DB
答案
D
解析
在基类B中定义虚函数f()和成员函数g(),而在派生类D中定义了函数f()和同名函数g()。而函数h中的形参为指向基类的指针变量p,所以在主函数中执行h(&obj)时,会调用派生类的函数f(),输出D,再调用基类的函数g(),输出B。
转载请注明原文地址:https://jikaoti.com/ti/oil0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
将运算符“+”重载为非成员函数,下列原型声明中,错误的是()。
有如下程序:#include<iostream>usingnamespacestd;classComplex{doublere,im;public:Complex(doubler,doublei):re(r),im(i){}do
有如下程序:#include<iostream>usingnamespacestd;voidf1(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y)
有如下程序:#include<iostream>usingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<<val;•ret
执行下列语句段后,输出字符“*”的个数是()。for(inti=50;i>1:--i)cout<<’*’;
+下列语句中,与语句“n=(a>b?(b>c?1:0):0);”的功能等价的是()。
下列关于虚函数的说明中,正确的是()。
为类Matrix重载下列运算符时,只能作为Matrix类成员函数重载的运算符是()。
下列关于基类和派生类关系的叙述中,正确的是()。
关于关键字class和typename,下列表述中正确的是()。
随机试题
下列各组词语的注音,没有错误的一组是()。
在氢氧化物沉淀分离中的氨水法注意事项都有哪些?
居家护理的对象主要是
以下骨盆测量中,哪项低于正常值
有关微小病变型肾病的描述,正确的是
社会诊断的是流行病学诊断
下列腧穴中,治疗高血压首选
在土建基础施工中,自动化仪表工程配合土建工程的工作有()。
()是学生的主要任务。结合学习任务做好学生的思想品德工作,是班主任的重要工作。
HowtoapproachListeningTestPartOne•InthispartoftheListeningTestyoulistentoamonologue,e.g.apresentation.•B
最新回复
(
0
)