C++ 类模版问题

声明一个模板类,类中包含数据数组,类中的成员函数sort完成数据排序的功能。下面是我写的程序,请帮忙看看是什么问题,并说明原因,谢谢#include<iostream>u... 声明一个模板类,类中包含数据数组,类中的成员函数sort完成数据排序的功能。
下面是我写的程序,请帮忙看看是什么问题,并说明原因,谢谢

#include<iostream>
using namespace std;

template<class T>
class compare{
public:
static T a[3];
compare(T a,T b,T c){}
template<class T>
void sort(T a,T b,T c){
T a[]={a,b,c};
T d;
for(int i=0;i<3;i++){
for(int j=0;j<2-i;j++){
if(a[j]>a[j+1]){
d=a[j];
a[j]=a[j+1];
a[j+1]=d;
}
}
} for (int i=0;i<3;i++){
cout<<a[i]<<endl;}
return 0;}
};
int main(){
static double a=3,b=5;
static double c=4.5;
compare<double>::sort(a,b,c);
return 0;}
展开
 我来答
IT孤鹜
2013-06-16 · TA获得超过4198个赞
知道大有可为答主
回答量:3960
采纳率:71%
帮助的人:3599万
展开全部

#include<iostream>

using namespace std;

template<class T>

class compare{

 public:

  static T a[3];

compare(T a,T b,T c){}

template<class T>  

static void sort(T a,T b,T c){

 T e[]={a,b,c};

 T d;

 int i;

 for(i=0;i<3;i++){

  for(int j=0;j<2-i;j++){

   if(e[j]>e[j+1]){

    d=e[j];

    e[j]=e[j+1];

    e[j+1]=d;

   }

  }

} for (i=0;i<3;i++){

  cout<<e[i]<<endl;}

}

};

int main(){

 static double a=3,b=5;

 static double c=4.5; 

 compare<double>::sort(a,b,c);

 return 0;}

云林之盟
2013-06-16 · 涵盖汽车、软件、医学等全方位知识体系
云林之盟
采纳数:166 获赞数:523

向TA提问 私信TA
展开全部
由于void sort()所有就不应该是 return 0.
for (int i=0;i<3;i++){
cout<<a[i]<<endl;}
return 0;}
其次,T a,T b,T c.既然a,b,c是三个变量名字,就不应该定义数组名字为T a[]={a,b,c}.在同一个函数类,尽量不要重名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
keary094
2013-06-16 · TA获得超过163个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:196万
展开全部
T a[]={a,b,c}; 这里重名了,换成q[]什么的。

还有这个sort函数不用return 0,因为你是void返回值。这个函数应该前面加个static;还有这个函数前面不用再写template<typename T>了,你类上面已经声明了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式