首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class A { public: virtual void func1() { cout
有如下程序: #include using namespace std; class A { public: virtual void func1() { cout
admin
2020-06-29
29
问题
有如下程序:
#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://kaotiyun.com/show/rByp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于函数的叙述中,正确的是
在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是
有如下程序段:inti=9;while(inti=0){cout
若磁盘上已存在某个文本文件,其全路径文件名为d:\ncre\test.txt,下列语句中不能打开该文件的是
有如下类声明:classWhy{intn;public:doubled;protected:longl;floatf;
下列叙述中正确的是
下列关于继承方式的表述中,错误的是
p是指向ClassA类型对象的指针。执行deletep;时,系统自动调用
为类MyClass重载赋值运算符时,应将其重载为类的
语句int*p=&k;定义了指针p,与这个语句等效的语句序列是()。
随机试题
热能不是一种营养素,而是食物中的产热营养素在体内代谢过程中释放出的能量。()
民主革命时期,中国共产党党员的绝大多数来自农民,因而它不是工人阶级的先锋队。
Thequeerwomankeptoveronehundredcatsinherhouse.
关于尿糖的说明中正确的是
对于慢性萎缩性胃炎,有较肯定诊断意义的是
吉布森等用视崖装置来研究婴儿的()。
()在其著作《管子·地圆篇》中对乐律学提出了“三分损益”的理论,这是我国最早的律学理论。
为什么说法律解释是法律实施活动中一项重要的工作()
VLAN在现代组网技术中占有重要地位,同一个VLAN中的两台主机
Somepeoplemayhavebeendauntedbythetaskbecauseofthedifficultiesitbrings,butIdonotknowof______.
最新回复
(
0
)