万能百科  > 所属分类  > 

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。程序通过继承关系,实现对姓名的控制。类TC1实现对

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。程序通过继承关系,实现对姓名的控制。类TC1实现对名字访问的接口,TC2实现对名字的设置和输出。

程序输出为

TC2Name

May

其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。

(1)在类TCl中定义接口函数GetName为纯虚函数。请在注释1后添加适当的语句。

(2)函数GetName2用于获得名字的缓存,但只获得允许读操作这个缓存,请在注释2后添加适当的语句。

(3)实现TC2的构造函数,请在注释3后添加适当的语句。

(4)完成TC2的构造函数,实现对名字的处理。请在注释4后添加适当的语句。

注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。

试题程序:

include<iostream.h>

classTC1

{

public:

//********1********

};

classTC2:publicTCl

{

public:

voidGetName

{

cout<<"TC2Name"<<endl;

}

//********2********

{

returnm_str;

}

//********3********

{

inti:

for(i=0;str[i]!=0;i++)

m_str[i]=str[i];

//********4********

}

private:

charm_str[32];

};

voidmain

{

TCl*P;

TC20bj1("May");

p=&objl;

p->GetName;

cout<<obj1.GetNamc2<<endl;

return;

}

正确答案:

(1)应添加“virtualvoidGetNamt!=0;”。(2)应添加“constchar*GetName2”。(3)应添加“TC2(char*str)”。(4)应添加“m_str[i]=0;”。【解析】本题第1处要求“在类TC1中定义接口函数GetName,为纯虚函数”。在C++中,在基类中用virtual声明成员函数为虚函数。纯虚函数是在声明虚函数时被“初始化”为0的函数,即“virtualvoidGetName=0;”。第2处要求“函数GetName2实现获得名字的缓存,但只获得读允许操作这个缓

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签