首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include 〈iostream〉 using namespace std; class A { public: virtual void setx(int i,int j=0) {
有以下程序: #include 〈iostream〉 using namespace std; class A { public: virtual void setx(int i,int j=0) {
admin
2010-03-29
27
问题
有以下程序: #include 〈iostream〉 using namespace std; class A { public: virtual void setx(int i,int j=0) { x=i; y=j; } virtual void print()=0; protected: int x,y; }; class B : public A { public: void print() { cout〈〈x*x〈〈", "; } }; class C : public A { public: void print() { cout〈〈x*x*x〈〈end1; } }; int main() { A *pa; B b; C c; pa=&b; pa->setx(5); pa->print (); pa=&c; pa->setx(2); pa->print(); return 0; } 程序运行后的输出结果是( )。
选项
A、25,8
B、2,5
C、5,2
D、8,25
答案
1
解析
该程序中定义了A类、B类和C类共3个类。其中,类A是抽象类,它的类体内有一个纯虚函数pnnt()。抽象类不可以定义对象,但可以定义指向对象的指针。类B和类C都是类A的公有派生类,这些类是具体类,它们对A类中纯虚函数都有不同的实现。该程序的主函数中,定义一个指向类A对象的指针pa,又定义了类B和类C的2个对象,并使指针pa分别指向这些对象。这里,采用动态联编,在运行时选择print()函数。所以,执行语句序列“pa=&b;pa->setx(5);pa->print();”后,系统调用类B的print()函数,输出25;执行语句序列“pa=&c;pa->setx(2);pa->prim();”后,系统调用类C的prim()函数,输出8。
转载请注明原文地址:https://jikaoti.com/ti/YaW0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include#defineSUB(a)(a)一(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;prinff(“%d\n”,d);}
已知库函数islower(ch)用以判断ch中的字母是否为小写字母,则下列程序运行后的结果是()。#include#includevoidfun(chas*p){inti=0;while(p[i]){if(p[i]==’’&&isl
有以下程序#include<stdio.h>#include<string.h>typedefstructstu{charname[10];
设有定义:char*c;,以下选项中能够使字符型指针C正确指向一个字符串的是()。
以下选项中正确的语句组是()。
以下叙述中正确的是()。
数据库系统的核心是()。
设有以下函数:voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均是正确的是()。
若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格)()。
设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是()。
随机试题
公司增资是指公司依法增加()
下列那些口服中毒可作常规洗胃()
吉兰-6雷综合征的发病与哪种细菌的感染有关
经行感冒主要临床表现下列哪项是错误的
某股份有限公司的董事长拒绝主持股东大会年会的召开,以下说法正确的是()
设p表示商品的价格,q表示商品的销售量,(作图)说明了()。
企业缴纳参加职工医疗保险的医疗保险费应通过()账户进行核算。
下列有关法律对人的效力的表述正确的是
已知f′(ex)=xe—x,且f(x)=0,则f(x)=______。
challenges
最新回复
(
0
)