首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

将下列代码中的安全数组改编成安全数组模板类解决办法

2012-05-11 
将下列代码中的安全数组改编成安全数组模板类要求:将下列代码中的安全数组改编成安全数组模板类可是不会啊

将下列代码中的安全数组改编成安全数组模板类
要求:将下列代码中的安全数组改编成安全数组模板类
可是不会啊,会的赶紧帮帮忙,跪谢!!!
#include <iostream>
#include <cstdlib>
using namespace std;
const int SIZE = 3;
class atype {
  int a[SIZE];
public:
  atype( ) {
  register int i;
  for(i=0; i<SIZE; i++) a[i] = i;
  }
  int &operator[](int i);
};
int &atype::operator[](int i)
{
  if(i<0 || i> SIZE-1) {
  cout << "\nIndex value of ";
  cout << i << " is out-of-bounds.\n";
  exit(1);
  }
  return a[i];
}
int main( )
{
  atype ob;
  cout << ob[2];  
  cout << " ";
  ob[2] = 25;  
  cout << ob[2];  
  ob[3] = 44; 
  return 0;
}


[解决办法]
#include <iostream>
#include <cstdlib>
using namespace std;
const int SIZE = 3;

template <class T>
class atype {
T a[SIZE];
public:
atype( ) {
register int i;
for(i=0; i<SIZE; i++) a[i] = i;
}
T &operator[](int i);
};

template <class T>
T &atype<T>::operator[](int i)
{
if(i<0 || i> SIZE-1) {
cout << "\nIndex value of ";
cout << i << " is out-of-bounds.\n";
exit(1);
}
return a[i];
}
int main( )
{
atype<int> ob;
cout << ob[2];
cout << " ";
ob[2] = 25;
cout << ob[2];
ob[3] = 44;
return 0;
}

确保要使用的数组类型为线性存储结构。
SIZE是windows sdk中的结构体,这样定义可不是好习惯。
另外,你这安全数组,实用性实在。。。。

热点排行