首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
有如下程序: #include using namespace std; class Base { public: void fun1(){cout
admin
2018-08-13
38
问题
有如下程序:
#include
using namespace std;
class Base
{
public:
void fun1(){cout<<"Base\n";}
virtual void fun2(){cout<<"Base\n";}
};
class Derived:public Base
{
public:
void fun1(){cout<<"Derived\n";)
void fun2(){cout<<"Dedved\n";}
};
void f(Base&b){b.fun1();b.fun2();}
int main()
{
Derived obj;
f(obj);
return 0;
}
执行这个程序的输出结果是( )。
选项
A、Base
Base
B、Base
Derived
C、Derived
Base
D、Derived
Derived
答案
B
解析
此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的:否则就调用基类中的。本题中,在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obj,所以在调用fun1()时,运行的是基类的版本,而fun2()运行的是派生类的版本。
转载请注明原文地址:https://kaotiyun.com/show/GyAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>usingnamespacestd;classAA{intn;public:AA(intk):n(k){}
下列关于运算符重载的描述中,正确的是()。
下列运算符不能重载为友元函数的是()。
函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【】。a[0]=1;a[1]=2;swap(a,2);
重新定义标识符的作用域规定是外层变量被隐藏,______变量是可见的。
有关构造函数的叙述不正确的是
结构化程序设计的3种基本结构分别是顺序、选择和______。
两个或两个以上模块之间联系的紧密程度称为()。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为______。
下列字符串中可以用做C++语言标识符的是
随机试题
类分、辨析出版物细类的补充依据是()。
领导群体的结构素质的内容。
根据《浆砌石坝施工技术规定》(SD120-84),下列关于砌石工程施工的说法正确的是()。
在保持其他条件不变的前提下,研究单个市场风险要素的微小变化可能会对金融工具或资产组合的收益或经济价值产生的影响的方法是()。
个人汽车贷款支付管理环节的主要风险点不包括()。
关于商标使用许可,下列说法正确的有()。
导游在带团过程中应注意的细节不包括()。
新经济:指在经济全球化和信息技术革命的带动下的一种新的经济发展模式和增长方式,其基本特征就是以信息和新技术为基础的高新科技产业。下列属于新经济的一项是:
下列适配器类中不属于事件适配器的是()。
A、Hebelievedthatbothtradingstocksandinvestingstocksarerisky.B、Heregardedinvestingstocksequallyriskyastradings
最新回复
(
0
)