![]() |
#2
specilize2011-05-05 19:03
|

#include<iostream>
using namespace std;
template<typename AType=int,int size = 10>
class atype
{
public:
atype()
{
int i;
for(i=0;i<size;i++) array[i]=i;
}
AType& operator[](int n);
private:
AType array[size];
};
template<typename AType,int size>AType& atype<AType,size>::operator [](int n)
{
if(n<0||n>=size)
{cout<<"下标"<<n<<"超出范围!!!"<<endl;
exit(1);
}
return array[n]=n;
}
int main()
{
atype<int,12>intob;
atype<double>doubleob;
atype<>defaultob;
int i;
cout<<"int数组:";
for(i=0;i<12;i++) intob[i]=i;
for(i=0;i<12;i++)
cout<<intob[i]<<" ";
cout<<endl;
cout<<"double数组:";
for(i=0;i<10;i++) doubleob[i]=(double)i/2;
for(i=0;i<10;i++)
cout<<doubleob[i]<<" ";
cout<<endl;
cout<<"默认数组:";
for(i=0;i<10;i++)
for(i=0;i<10;i++)
cout<<defaultob[i]<<" ";
cout<<endl;
return 0;
}
为什么不能实现double数组的正确显示
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
using namespace std;
template<typename AType=int,int size = 10>
class atype
{
public:
atype()
{
int i;
for(i=0;i<size;i++) array[i]=i;
}
AType& operator[](int n);
private:
AType array[size];
};
template<typename AType,int size>AType& atype<AType,size>::operator [](int n)
{
if(n<0||n>=size)
{cout<<"下标"<<n<<"超出范围!!!"<<endl;
exit(1);
}
return array[n]=n;
}
int main()
{
atype<int,12>intob;
atype<double>doubleob;
atype<>defaultob;
int i;
cout<<"int数组:";
for(i=0;i<12;i++) intob[i]=i;
for(i=0;i<12;i++)
cout<<intob[i]<<" ";
cout<<endl;
cout<<"double数组:";
for(i=0;i<10;i++) doubleob[i]=(double)i/2;
for(i=0;i<10;i++)
cout<<doubleob[i]<<" ";
cout<<endl;
cout<<"默认数组:";
for(i=0;i<10;i++)
for(i=0;i<10;i++)
cout<<defaultob[i]<<" ";
cout<<endl;
return 0;
}
为什么不能实现double数组的正确显示
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5