C+::请教一个关于类模板的问题

这样写没有问题:#include<iostream>usingnamespacestd;template<classT1,classT2=int>classMyTempl... 这样写没有问题:
#include<iostream>
using namespace std;
template<class T1,class T2=int>
class MyTemplate
{
private:
T1 t1;
T2 t2;
public:
MyTemplate(T1 tt1,T2 tt2)
{
t1=tt1;
t2=tt2;
}
void display()
{
cout<<t1<<" "<<t2<<endl;
}
};
void main()
{
int a=1;
double b=2.2;
MyTemplate<int,double> mt1(a,b);
MyTemplate<int> mt2(a,b);
mt1.display();
mt2.display();
}

不过我想把void display()写在类体外,写成以下这样,不过编译没有通过,请问,应该如何修改:
#include<iostream>
using namespace std;
template<class T1,class T2=int>
class MyTemplate
{
private:
T1 t1;
T2 t2;
public:
MyTemplate(T1 tt1,T2 tt2)
{
t1=tt1;
t2=tt2;
}
};
void MyTemplate::display()
{
cout<<t1<<" "<<t2<<endl;
}
void main()
{
int a=1;
double b=2.2;
MyTemplate<int,double> mt1(a,b);
MyTemplate<int> mt2(a,b);
mt1.display();
mt2.display();
}
哦,应该在类体中先声明:
class MyTemplate
{
.......
void display();
}
展开
 我来答
自我催眠1953
2012-04-08
知道答主
回答量:45
采纳率:0%
帮助的人:29.1万
展开全部
类外应该是这样的
template<class T1,class T2=int>
void MyTemplate<T1,T2>::display()
更多追问追答
追问
您好,请问这是为什么?
追答
C++严格的定义
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式