首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。
请打开考生文件夹下的解决方案文件proj2,其中定义了Component类、Composite类和Leaf类。Component是抽象基类,Composite和Leaf是Component的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。
admin
2020-10-21
21
问题
请打开考生文件夹下的解决方案文件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_chiid=chiid;
}
virtual void print()const
{
m_chiid—>print();
}
private:
Component * m_chiid;
};
class Leaf:public Component{
public:
virtual void print()const
{
//**********found**********
___________
}
};
int main()
{
Leaf node;
Composite comp;
comp.setChiid(&node);
Component *p=∁
p—>print();
return 0;
}
选项
答案
(1)vinual 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.setChild(&node);
Component * p=∁
p—>print();
第一条和第二条语句都是定义语句,第三条语句调用函数setChild,由setChild函数的定义可知,comp中的m_child等于node,第四条语句定义了个指针p指向comp的地址,也就是node,最后一条语句通过指针p调用函数print,也就是调用类Leaf的函数print,因为题目要求输出:Leaf Node,因此在这里添加语句:cout<<"Leaf Node"<<endl;。
转载请注明原文地址:https://jikaoti.com/ti/dLl0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类定义:classBag{public:Bag(intp=200,chars=’M’):price(P),size(s){eout
下列关于线性表的叙述中,不正确的是()。
下列选项中,不属于数据管理员(DBA)职责的是()。
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下两个函数:(1)fun1(intn);求出n的阶乘,必须使用递归调用。(2)fun2(intn):求出n的阶乘,不能使用递归调用。如果n小于1则返回0。注意:请勿改动主函数ma
己知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为()。
下列有关类继承的叙述中,错误的是()。
在下面的类定义中,横线处应填入的内容是()。classFred{public:voidprint(){cout
在C++语言中函数返回值的类型是由()决定的。
已知函数模板定义如下:templateTmin(Tx,TY){returnx
关于关键字class和typename,下列表述中正确的是()。
随机试题
慢性粒细胞白血病病人骨髓象()
急性溶血性输血反应时尿检见
我国现阶段的“三资企业”属于下列选项中的哪种性质的经济?()
下列分项工程中,不属于水喷雾灭火系统工程的是()。
在双代号网络图中,为了正确地表达图中工作之间的关系,往往需要应用虚箭线。虚工作(虚线)表示工作之间的()。
领队在查验游客的证件、签证及机票时,应着重对()进行检查。
贾某骑摩托车违章撞伤田某,造成田某腿部表皮破裂。贾某送田某到医院治疗,护士未做皮试,即给田某注射破伤风针,田某因药物过敏而死。贾某的行为对田某死亡而言属于()。
A、 B、 C、 D、 B
计算并填写下表。
AnewreportreleasedbytheAmericanFederationofTeachers(AFT)remindsusofatopiceducationwritersalmostneveraddress—th
最新回复
(
0
)