首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。
请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。
admin
2021-05-06
60
问题
请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
Leaf Node
注意:只能在横线处填写适当的代码,不要改动
程序中的其他内容,也不要删除或移动“//****found****”。
#include<ioStream>
using namespace std;
class Component{
public:
//声明纯虚函数print( )
//*******found*******
_______
};
class Composite:public Component{
public:
//*******found*******
VOid SetChild(_______)
{
m_child=chiid;
}
virtual void print( )const
{
m_chiid->print( );
}
private:
Component*m_chiid;
};
class Leaf:public Component{
public:
virtualvoidprint( )const
{
//*******found*******
}
};
int main( )
{
Leaf node;
Composite comp;
comp.setChiid(&node);
Component*p=&comp:
p->print( );
return0;
}
选项
答案
(1)virtual void print( )const=0; (2)Component*child (3)cout<<"Leaf Node"<<endl;
解析
(1)主要考查考生对纯虚函数的掌握,题目要求声明纯虚函数print( )。在其派生类中print( )函数的定义为virtual void print( )const,由此可知纯虚函数为virtual void print( )const=0。
(2)主要考查考生对成员函数的掌握,题目要求填写函数void setChild的形参,由setChild的函数体可知形参为child,再看类的私有成员m_child的定义:Component*m_child;。由此可知形参为:Component*child。
(3)主要考查考生对纯虚函数的掌握,先看主函数的程序:
Leaf node;
Composite comp;
comp.setChiid(&node);
Component*p=∁
p->print( );
第一条和第二条语句都是定义语句,第三条语句调用函数setChild,由setChild函数的定义可知,comp中的m_child等于node,第四条语句定义了个指针p指向comp的地址,也就是node,最后一条语句通过指针p调用函数print,也就是调用类Leaf的函数print,因为题目要求输出:Leaf Node,因此在这里添加语句:tout<<"Leaf Node"<<endl;。
转载请注明原文地址:https://kaotiyun.com/show/YLfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序。函数convert(char*strOct)的功能是将八进制转换为十进制。提示:要每一位转换,然后把转换后得到的数累加起来即可。注意:不
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果是:112233445566778899注意:不要改动main函
有如下类声明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列关于getValue成员函数的定义中,正确的是()。
关于在调用模板函数时模板实参的使用,下列表述正确的是()。
有如下语句序列:intx=100,&r=x;cout<<x<<’-’<<r<<end1:已知其中变量x的地址为0012FF7C,则执行该语句序列的输出结果为()。
有如下类定义:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{protected:voidfun4(){}
下列关于运算符重载的叙述中,正确的是()。
在E-R图中,用来表示实体联系的图形是( )。
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。
随机试题
文件目录是文件系统实现_______的重要手段。
急性腹膜炎发生严重休克的主要原因为
A.α1球蛋白B.α2球蛋白C.T-H蛋白D.白蛋白E.β2微球蛋白肾小管性蛋白尿时尿中出现的蛋白为
用来判断暴露危险因素是否与疾病有关联及其关联程度大小的一种观察性研究方法是( )
为增加粘结力,粘结之前预备体表面需作的处理中不包括
杨先生与金女士正面临生涯和家庭上的转变,需要金融理财规划师协助规划。规划师通过初步沟通,获得了以下家庭、职业与财务信息:一、家庭成员二、收支情况2003年金女士夫妇和其兄共同出资成立了温州某服饰有限责任公司,法人代表为其兄,注册资金200万元(资金
下列关于新能源的说法正确的是()。
A、 B、 C、 D、 D
设α1,α2,α3,α4,β为四维列向量组,A=(α1,α2,α3,α4),已知方程组Ax=β的通解是(一1,1,0,2)T+k(1,一1,2,0)T.(Ⅰ)β能否由α1,α2,α3线性表示?(Ⅱ)求α1,α2,α3,α4,β的一个极大线性无关组.
PassageThreeWhatdoestheauthorcalloncollegestudentstodointhelasttwoparagraphs?
最新回复
(
0
)