首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
有如下程序: #include using namespace std; class Shape{ //图形类 public: //图形绘制函数(用显示字母模拟) virtual
admin
2021-07-02
48
问题
有如下程序:
#include
using namespace std;
class Shape{ //图形类
public:
//图形绘制函数(用显示字母模拟)
virtual void draw()const{ cout<<’S’; }
};
class Circle: public Shape{ //圆形类
public:
void draw()const{ cout<<’C’; }
};
void plot(Shape &s){ s.draw(); }
int main(){
Shape *ps=new Circle;
Circle t;
ps->draw();
t.draw();
plot(t);
delete ps;
return 0;
}
运行这个程序的输出是
选项
A、SCC
B、SCS
C、CSS
D、CCC
答案
D
解析
C++中,多态性调用需要满足两个条件,1、被调用成员函数必须是虚函数;2、必须通过基类类型的引用或指针进行函数调用。多态性使程序在运行时期根据指针或引用所指对象的类型来决定调用哪个函数。程序中,类Shape定义了虚函数draw(),在派生类Circle中重写了函数draw();main函数中,分别使用指针、对象、引用三种方式调用函数draw(),指针ps是基类指针,指向的是派生类的对象,所以这里根据多态性,将调用Circle中的draw函数,输出"C";对象t是Circle对象,也调用Circle中的draw函数,输出"C";函数plot()执行时引用s引用的是实参t,引用对象是派生类Circle对象,根据多态性,同样调用Circle中的draw函数,输出"C";结果输出为"CCC";答案为D。
转载请注明原文地址:https://kaotiyun.com/show/jlfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在下面的类声明中,错误的是
下列关于虚函数的叙述中,正确的是
语句int*p=&k;定义了指针p,与这个语句等效的语句序列是()。
若已定义了类Vehic1e,则下列派生类定义中,错误的是()。
在关系数据库中,用来表示实体间联系的是
设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为
下列与队列结构有关联的是()。
有如下语句序列:charstr[10];ci>>str;当从键盘输入’’Ilovethisgame’’时,str中的字符串是()。
有如下语句序列:charstr(10);cin>>str;当从键盘输入Ilovethisgame时,str中的字符串是()。
随机试题
4岁女婴,因高热、头疼4d于5月4日入院。体检提示:话多,答非所问。时而烦躁,无明显神经系统体征出现。应考虑诊断
请示属于报请性公文。
脊髓亚急性联合变性症状主要表现________。
对于非重点污染源的调查与评价时,一般采用()的方法。
出纳管理模块中的“出纳轧账”功能应在()时候操作。
问卷法的两个主要特点是()。
台湾自古即属于中国。大量的史书和文献记载了中国人民早期开发台湾的情景。距今1700多年以前,三国时吴人沈莹的()就对此有所著述。
子口税
《担保法》第89条当事人可以约定一方向对方给付定金作为债权的担保。债务人履行债务后,定金应当抵作价款或者收回。给付定金的一方不履行约定的债务的,无权要求返还定金;收受定金的一方不履行约定的债务的,应当双倍返还定金。《担保法》第90条定金应当以书面形式约定
分组交换与报文交换在形式上的主要区别在于__________。
最新回复
(
0
)