[求助]有关运算符重载的题目
这是一条二级的题目,题目的大意为:设计一个数组类模板Arrar<T>,其中包含重载下标运算符函数,并由产生模板类Array<int>和Array<char>.并使用一些测度数据对其进行测试,使其运行结果为:
ASCII码 | 字符 |
97 | a |
98 | b |
99 | c |
100 | d |
101 | e |
102 | f |
103 | g |
104 | h |
105 | i |
106 | j |
#include <iostream.h>
#include <iomanip.h>
template <class T>
class Array
{
T *elems ;
int size ;
public:
Array(int s) ;
~Array() ;
T& operator[](int) ; // 重载下标运算符
void operator=(T) ; // 重载等号运算符
};
template <class T> Array<T>::Array(int s)
{
size = s ;
//**********found**********
elems = new T[size] ; //这些本人已经做了,
for(int i = 0 ; i < size ; i++) elems[i] = 0 ;
}
template <class T> Array<T>::~Array()
{
//**********found**********
delete []elem ; //这些本人已经做了,
}
template <class T> T& Array<T>::operator[](int index)
{
//**********found**********
____________________;
}
template <class T>void Array<T>::operator=(T temp)
{
for(i = 0 ; i < size ; i++)
//**********found**********
elems[i] = ____ ;
}
void main()
{
int i, n = 10 ;
Array<int> arr1(n) ; // 产生整数型模板类及其对象arr1
Array<char> arr2(n) ; // 产生字符型模板类及其对象arr2
for(i = 0 ; i < n ; i++)
{
arr1[i] = 'a' + i ; // 调用重载运算符
arr2[i] = 'a' + i ;
}
cout << " ASCII码 字符" << endl ;
for( i = 0 ; i < n ; i++) cout << setw(8) << arr1[i] << setw(8) << arr2[i] << endl ;
}