填空题

使用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)错误:缺少模板的声明 正确:templat......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
使用VC6打开考生文件夹下的工程test27_3。此工程包含一个test27_3.cpp,其中定义了类ARRAY,但类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成类ARRAY的带一个参数的构造函数,参数i为int型,如果i不是正数则输出错误信息并退出,否则申请int型的大小为i的空间,然后把i赋值给类的数据成员num。请在注释“ **1**”之后添加适当的语句。(2)完成类ARRAY的拷贝初始化构造函数,注意解决重复删除的问题,请在注释“ **2**”之后添加适当的语句。(3)完成类ARRAY的重载的运算符函数[],参数i为int型,如果i超界则输出错误信息并退出,否则把下标为i的元素返回,请在注释“ **3**”之后添加适当的语句。(4)完成类ARRAY的重载的运算符函数二,同样需要注意解决重复删除的问题,不能只是简单的赋值,请在注释“ ** 4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test27_3.cpp清单如下;#include<iostream.h>#include<stdlib.h>class ARRAY{private:int* p, num;public:ARRAY ( ) {p=new int[ 10 ] , num=10; }ARRAY ( int i){ ** 1 **{cout<<“错误!数组长度应为正。 n”;exit(0);} p=new int[i];num= i;} ARRAY(const ARRAY & a);int &operator [ ] (int i);~ARRAY() {delete p; }ARRAY&operator=(const ARRAY& a);friend ARRAY operator+(ARRAY &a,ARRAY&b);friend ostream& operator<< (ostream&os,ARRAY&a);}; ARRAY: :ARRAY(const ARRAY &a){ ** 2 **for (int i=0; i<num; i++)p[i]=a.p[i];} int &ARRAY: :operator [ ] (int i){ ** 3 **{ cout<<“越界访问!”;exit (0);}return p[i];}ARRAY & ARRAY::operator=(const ARRAY& a){num= a. num;p=new int [num];for (int i=0; i<num; i++)p[i]=a.p[i]; ** 4 **}ARRAY operator+(ARRAY & a,ARRAY & b){if (a.num! =b. hum){cout<<“数组长度不相同!” <<end1;exit (0);}ARRAY t (a.num);for(int i=0;i<a.num;i++)t.p[i]=a.p[i]+b.p[i];return t;}ost ream& operator<< (ostream&os, ARRAY&a){int i=0;for(;i<a.num; i++){cout<<a.p[i]<<’ ’;if (!((i+1) %10) ) cout<<end1;}return os;}void main ( ){ARRAY a(3);a[0]=a[1] =a[2]=3;cout<<’a’<<a<<end1;ARRAY b ( a );cout<<’b’<<b<<end1;ARRAY c(2);c=a+b+b;cout<<’c’<<c<<end1;c=( (b= (a+b)) +c);cout<<’a’<<a<<’b’<<b<<’c’<<c<<end1;a[7]=3;cout<<a;}