【C++】怎样进行类的重载

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:12:45
template <class Atype=int ,int size = 10>class atype{
//我想在Atype为double类型时,对类进行类似重载的操作, 请问要怎么写这个类的开头?

Atype a[size];
public:
atype(){
register int i;
for(i=0;i<size;i++)a[i]=i;
}
Atype & operator[](int i);
};
你好 snowzmy ,
我的意思是template <class Atype=int ,int size = 10>class atype适用于所有的数据类型,可是却并不适用于double(我不想它用,可是按照语法,它要用-_-)
因此,我要定义一个特例情况下的类
ps:名字问题我下次会注意的,谢谢,还有那个class Atype=int是一个默认参数,可以不用定义Atype,直接调用(也算是重载的一种)

什么东东,照你的说法,就不是什么模板了!
模板template就必须有统一的形式,必须按照统一的格式来重载的,不允许特殊

啊啊啊////

Atype的具体类型不需要定义,系统会自动生成,如创建int型对象:atype <int> 对象名;
类名atype和类型名Atype很容易混淆,最好改一下。
程序编译没错误,可是你在构造函数里定义的这个i怎么传递值呢
atype(){
register int i;
for(i=0;i<size;i++)a[i]=i;
}
所以最后程序是这样的,不知道你是不是这个意思
const int size=10;
template <class Atype>
class atype{
Atype a[size];
public:
atype(int i){
for(i=0;i<size;i++)a[i]=i;
}
Atype & operator[](int i);
};