模板问题

[复制链接]
查看11 | 回复8 | 2021-1-27 07:13:09 | 显示全部楼层 |阅读模式
我想模板里头嵌套模板,要怎么写呢?

#include
template
Typemax(Typex,Typey)
{
return(x>y)?x:y;
}
template
Typemax(Typex,Typey,Typez)
{
Typet;
t=max(Typex,Typey);
return(t>z)?t:z;
}
main()
{
intm=10,n=20,max2;
floata=10.1f,b=20.2f,c=30.3f,max3;
max2=max(m,n);max3=max(a,b,c);
cout
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层

template
Typemax(Typex,Typey,Typez)
{
Typet;
t=max(x,y);
return(t>z)?t:z;
}

回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
/*
定义一个车(vehiele)基类,有Run、Stop等成员函数,
由此派生出自行车(bicycle)类、汽车(motorcar)类,
从bicycle和motorcar派生出摩托车(motorcycle)类,
它们都有自己的Run、Stop等成员函数。
在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,
调用其Run()、Stop()函数,观察其执行情况。
再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;
把Run、Stop定义为虚函数,再试试看。观察虚函数的作用。
*/
#include
classvehiele{
public:virtualvoidRun(){coutRun();
p->Stop();
P=&d2;
P->Run();
p->Stop();
p=&d3;
p->Run();
p->Stop();
p=&d4;
p->Run();
p->Stop();
}这是我写得测试语句请问有一个错误的话,错在哪里呢?可以帮我运行一下吗?
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
如果您这样写的话,那么在t=max(x,y);它如何传递类型参数给前面一个函数模板呢?
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
你调用Typemax(Typex,Typey,Typez)这个函数的时候,xyz类型,
有没有确定?如果确定t=max(x,y)xy类型已经确定
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
引用2楼dreambanklove的回复:/*
定义一个车(vehiele)基类,有Run、Stop等成员函数,
由此派生出自行车(bicycle)类、汽车(motorcar)类,
从bicycle和motorcar派生出摩托车(motorcycle)类,
它们都有自己的Run、Stop等成员函数。
在main()函数中定义vehicle、bicycle、motorcar、motorcycle的……

你先把你的程序,编译下。确定好变量。你的变量都是乱的。如果是VS,CTRL+K+F整理下代码
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
我写的都只是测试语句。所以里头只有几个成员函数。
回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
templateTypemax(Typex,Typey,Typez){Typet;t=max(x,y);return(t>z)?t:z;}为什么我觉得应该在x前再加个Type的类型,不然感觉不像模板调用啊?

回复

使用道具 举报

千问 | 2021-1-27 07:13:09 | 显示全部楼层
引用7楼dreambanklove的回复:templateTypemax(Typex,Typey,Typez){Typet;t=max(x,y);return(t>z)?t:z;}为什么我觉得应该在x前再加个Type的类型,不然感觉不像模板调用啊?
看书吧亲。。那你告诉我Typemax(Typex,Typey,Typez)或者Typemax(Typex,Typey),怎么调用,你
main()函数里写的是什么。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行