题库 题库

【简答题】

(1)应添加“virtualvoidGetNamt!()=0;”。
(2)应添加“constchar*GetName2()”。
(3)应添加“TC2(char*str)”。
(4)应添加“m_str[i]=0;”。

参考答案

使用VC++6.0打开考生文件夹下的源程序文件3.Cpp。程序通过继承关系,实现对姓名的控制。类TC1实现对名字访问的接口,TC2实现对名字的设置和输出。 程序输出为 TC2NAmEMAy其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(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;
}

相关试题

单选题 数据流程图(DFD)是(  )。 查看答案
单选题 下列关于类模板的描述中,错误的是(  )。 查看答案
单选题 用树型结构表示实体之间联系的模型是(  )。 查看答案
单选题 有以下程序:
#include
usingnamespacestd;
classA
{private:
inta:
public:
A(inti)
{a=i;}
voiddisp()
{cout<<a<<",";));
classB
(private:
intb;
public:
B(intj)
{b=j;}
voiddisp()
{cout<<b<<",";}};
classC:publicB,publicA
{private:
intC;
public:
c(intk):A(k-2),B(k+2)
{c=k;
}
voiddisp()
{
a::disp();
B::disp();
COUt<<c<
}
};
intmain()
{
Cobj(10);
obj.disp();
return0;
}
程序执行后的输出结果是(  )。
查看答案
单选题 下面的函数调用语句中func函数的实参个数是(  )。
func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));
查看答案
单选题 类MyClass的定义如下:
classMyClass
{
public:
MyClass(){value=0;}
SetVariable(inti){valtic=i;}
private:
intvalue;
};
MyClass*P,my;p=&my;
则对下列语句序列正确的描述是(  )。
查看答案
单选题 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是(  )。 查看答案
单选题 下列工具中为需求分析常用工具的是(  )。 查看答案
单选题 下列关于函数的描述中,错误的是(  )。 查看答案
单选题 设有程序段:
intk=10。
while(k=O)k=k-1;
则下面描述中正确的是(  )。
查看答案
单选题 程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是(  )。 查看答案
单选题 有下列程序:
#include
intfun(inta.intb)
{if(b==0)relurna;
elsereturn(fun(--a,--b));
}
voidmain(  )
{printf("%d\n",fun(4,2));}
程序的运行结果是(  )。
查看答案
单选题 有如下程序:
#include
usingnamespacestd;
voidf1(int&X,int&y){intz=X;x=y;y=z}
voidf2(intX,inty){intz=x;x=y;y=z}
intmain(  ){
intx=10,y=26
f1(x,y);
f2(X,y);
cout<<y<
return0;
}
运行时的输出结果是(  )。
查看答案
单选题 有下列程序:
#includeintf(intx,inty)
{return((y-x)*x);}
voidmain(  )
{inta=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序运行后的输出结果是(  )。
查看答案
单选题 有以下程序:
#include
usingnamespaeestd;
classMyClass
{
public:
MyClass(intn){number=n;}
//拷贝构造函数
MyClass(MyClass&other){number=other.number;}
~MyClass(){}
private:
intnumber;
};
MyClassfun(MyClassp)
{
MyClasstemp(p);
returntemp;
}
intmain()
{
MyCIassobj1(10),obj2(O);
MyClassobj3(obj1);
obj2=fun(obj3);
return0;
程序执行时,MyClass类的拷贝构造函数被调用的次数是(  )。
查看答案
单选题 执行下列语句序列:
inti=0;while(i<25)i+=3;cout<
输出结果是(  )。
查看答案
单选题 若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是(  )。 查看答案
单选题 有如下类定义:
classXX{
intxdata;
public:
XX(intn=0):xdata(n){}
};
classYY:publicXX{
intydata;
public:
YY(intm=0,intn=O):XX(m),ydata(n){}
};
YY类的对象包含的数据成员的个数是(  )。
查看答案
单选题 软件(程序)调试的任务是(  )。 查看答案
单选题 有如下两个类定义:
classXX{
private:
doublexl;
protected:
doublex2;
public:
doublex3;
};
claseYY:protectedXX{
private:
doubleyl;
protected:
doubley2;
public:
doubley3;
};
在类YY中保护成员变量的个数是(  )。
查看答案