请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程包含一个源程序文件projl.cpp。文件中将表示数组元素个数的常量Size定义为4,并用int类型对类模板进行了实例化。文件中位于每个注释“//ERROR****found*

admin2016-06-12  64

问题 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程包含一个源程序文件projl.cpp。文件中将表示数组元素个数的常量Size定义为4,并用int类型对类模板进行了实例化。文件中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:
1234
注意:模板参数名用T。只修改注释“//ERROR*********found**********”的下一行语句,不要改动程序中的其他内容。
//projl.cpp
#include
using namespace std;
//将数组元素个数Size定义为4
//ERROR*********found**********
const int Size;
template
class MyClass
{
public:
  MyClass(T*P)
  {
  for(int i=0;i  array=p
}
void Print《);
private:
T array[Size];
};
template
//ERROR*********found***********
void MyClass::Print()
{
  for(int i=0;icout<<<‘\t’;
}
int main()
{
int intArray[Size]={1,2,3,4 };
//ERROR*********found**********
MyClassobj(intArray);
obj.Print();
cout<return 0;
}

选项

答案(1)const int Size=4; (2)void MyClass::.Print() (3)MyClass0bj(intArray);

解析 主要考查的是模板类MyClass,其中涉及构造函数、成员函数和const变量。const变量必须进行初始化,因为const确定了该变量Size不能改变。模板类的成员在定义时要加上模板符号“”,调用时也要注意添加相应的类型。
【解题思路】
(1)主要考查考生对const变量的掌握,因为eonst变量不能修改,所以在定义的同时必须初始化。
(2)主要考查考生对模板类的成员函数定义的掌握,因为MyClass类是模板类,所以在定义该函数时要加上模板标识符“”,即语句void MyClass::Print()。
(3)主要考查考生对模板类构造函数的调用的理解,从上一条语句int intArray[Size]={l,2,3,4};中可以知道intArray为int型,因此定义0bj时要使用,即MyClassobj(intArray);。
【解题宝典】
对于模板类,不论是其成员函数还是构造函数,调用时都要使用标识符“”。
转载请注明原文地址:https://kaotiyun.com/show/miNp777K
0

最新回复(0)