请高手给我看一下这道C++的题吧!!万分感谢

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:38:50
#include <iostream.h>
template<class t1,class t2,class t3>
class max
{
private:
t1 x;t2 y;t3 z;
public:
max(t1 a,t2 b,t3 c)
{x=a;y=b;z=c;}
void showmax();
};
template<class t1,class t2,class t3>
void max::showmax()
{cout<<"max="<<((x>y?x:y)>z?(x>y?x:y):z)<<endl;}
void main()
{
max<int,float,char> m1(8,97.4,'a');
m1.showmax();
}
我运行了之后怎么不行啊!!

#include <iostream.h>
template<class t1,class t2,class t3>
class max
{
private:
t1 x;t2 y;t3 z;
public:
max(t1 a,t2 b,t3 c)
{x=a;y=b;z=c;}
void showmax();
};

template<class t1,class t2,class t3>
void max<t1,t2,t3>::showmax()
{cout<<"max="<<((x>y?x:y)>z?(x>y?x:y):z)<<endl;}

void main()
{
max<int,float,char> m1(8,97.4,'a');
m1.showmax();
}

运行之后就好了,关键是void max<t1,t2,t3>::showmax()要改一下

这里语法有点问题 ,类名要写全名,也就是要包括类型参数的

template<class t1,class t2,class t3>
void max<t1,t2,t3>::showmax()

#include <iostream.h>
template<class t1,class t2,class t3>
class max
{
private:
t1 x;t2 y;t3 z;
public:
max(t1 a,t2 b,t3 c)
{x=a;y=b;z=c;}
void showmax(){cout<<"max="<<((x>