A-A+

使用VC6打开考生文件夹下的工程test27_1 此工程包含一个源程序文件test27_1.

2022-08-05 20:11:59 问答库 阅读 171 次

问题详情

使用VC6打开考生文件夹下的工程test27_1,此工程包含一个源程序文件test27_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为;
100
源程序文件test27_1.cpp清单如下:
include <iostream.h>
template <class T>
class pair
{
T valuel, value2;
public:
pair (T first, T second)
{valuel=first; value2=second;}
/***************** found *****************/
char getmax ();
};
/***************** found *****************/
T pair<T>::getmax ()
{
T retval;
/***************** found *****************/
retval = valuel>value2?? value1 : value2;
return retval;
}
void main ()
{
pair <int> myobject (100, 75);
cout << myobject.getmax()<<end1;
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误:char getmax();正确:T getmax();(2)错误:缺少模板的声明正确:template<classT>(3)错误:retval=valuel>value2??value1:value2;正确:retval=valuel>value2?value1:value2;
(1)错误:char getmax();正确:T getmax();(2)错误:缺少模板的声明正确:template<classT>(3)错误:retval=valuel>value2??value1:value2;正确:retval=valuel>value2?value1:value2; 解析:(1)主要考查考生对于模板使用的理解,该函数属于模板类定义的一部分,对于返回值类型,应该使用模板类名称T,这样编译的时候才‘能被接受:
(2)主要考查考生是否掌握了模板的使用,前面的模板类已经声明完成了,在类的外面定义类的成员函数时仍然需要使用模板的声明,这样在后面的函数定义体中才能使用模板类;
(3)主要考查考生对于“表达式17表达式2:表达式3”语句的掌握,这个语句是一个复合语句,先计算第一个表达式,如果为真则整个式子值为表达式2的值,否则为表达式3的值,题目中错误的使用了两个问号;

考点:工程,源程序