| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 753 人关注过本帖
标题:[求助]有关运算符重载的题目
只看楼主 加入收藏
hijk_12
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-6-25
收藏
 问题点数:0 回复次数:2 
[求助]有关运算符重载的题目

这是一条二级的题目,题目的大意为:设计一个数组类模板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 ;
}

搜索更多相关主题的帖子: 运算符 重载 
2006-02-21 10:36
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]template <class T>void Array<T>::operator=(T temp)
{
for(int i = 0 ; i < size ; i++)
elems[i] = temp.elems[i];
}[/CODE]

在这个题目可以,但这样的赋值重载我认为有些问题,如果两个对象不一样长怎么办?


2006-02-21 15:54
hijk_12
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2005-6-25
收藏
得分:0 
最终确定,这道题目本身有问题,该题目对"="的重载根本用不上

2006-02-21 18:28
快速回复:[求助]有关运算符重载的题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved