首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序的输出结果是______。 #include<iostream> using namespace std; class base { public: int n; base(int x) {
下列程序的输出结果是______。 #include<iostream> using namespace std; class base { public: int n; base(int x) {
admin
2010-12-16
34
问题
下列程序的输出结果是______。
#include<iostream>
using namespace std;
class base
{
public:
int n;
base(int x) { n=x;}
virtual void set(int m) { n=m;cout << n <<’ ’;}
};
class deriveA:public base
{
public:
deriveA(int x):base(x) {}
void set(int m) { n += m;cout << n <<’ ’;}
};
class deriveB:public base
{
public:
deriveB(int x):base(x) {}
void set(int m) { n +=m; cout << n<<’ ’;}
};
int main()
{
deriveA d1(1);
deriveB.d2(3);
base *pbase;
pbase=&d1;
pbase->set(1);
pbase= &d2;
pbase->set(2);
return 0;
}
选项
答案
25
解析
本题考核虚函数的定义和调用。在C++中,一个基类指针(或引用)可以用来指向它的派生类对象,而且通过这样的指针 (或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。题中基类成员函数set()被定义成虚函数,而且其派生类deriveA和deriveB都有函数set()的重定义版本,所以通过指针pbase的两次调用分别调用的是派生类deriveA和deriveB中定义的版本,即输出25。
转载请注明原文地址:https://kaotiyun.com/show/WOjp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));printf("%d\n",a+b)
数据库的数据模型分为
关系表中的每一行记录称为一个()。
若有以下函数首都:intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是()。
下列给定程序中函数fun的功能是:用冒泡法埘6个字符串按m4,到大的顺序进行排序。请改止程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<stdli
若有以下定义,则对a数组元素地址的正确引用是()。inta[5],*p=a;
关系数据库管理系统能实现的专门关系运算包括()。
以下关于算法的叙述中错误的是()。
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
测试的,目的是暴露错误,评价程序的可靠性;而【】的目的是发现错误的位置并改正错误。
随机试题
A.O.5~1gB.0.15~0.3gC.0.001~0.01gD.1~3g
γ-谷氨酰转肽酶(GGT)含量最多的器官为
A.氘灯B.棱镜C.聚乙烯薄膜D.标准石英旋光管E.水
()表现为舌体软弱,屈伸无力。
对于甲公司而言,下列各项交易中,应当按照债务重组准则进行会计处理的是()。
【教学材料】TraditionalChinesedoctorsbelieveweneedabalanceof"yin"and"yang"tobehealthy.Forexample,areyouoftenweak
AnearthquakehitKashmironOct.8,2005.Ittooksome75000lives,【C1】______130000andleftnearly3.5millionwithoutfood
下列程序的运行结果是()。#includevoidsub(int*s,int*y){staticintm=4;*y=s[0];m++:}voidmain(){
★他已经写完作业了。()
Thepremiseofrecallingis______.
最新回复
(
0
)