关于模版的实参推演

本文通过示例深入探讨C++模板中实参推演的过程,包括不同类型的参数传递(非const、const及指针)对类型的影响,以及在函数调用中的表现和错误情况。
摘要由CSDN通过智能技术生成
template<class T>
void fun1(T a)
{
T x,y;
cout<<typeid(T).name()<<endl;
cout<<typeid(a).name()<<endl;
}


template<class T>
void fun2(T *a)
{
//T x,y;
//T x=0,y=0;
cout<<typeid(T).name()<<endl;
cout<<typeid(a).name()<<endl;
}


template<class T>
void fun3(const T *a)
{
T x,y;
cout<<typeid(T).name()<<endl;
cout<<typeid(a).name()<<endl;
}
void main()
{
int a = 10;
const int b = 20;
int *ip = &a;
const int *cp = &b;


//fun1(a);      //int int
//fun1(b);      //int int 
//fun1(&a);   //int * int *
//fun1(&b);   //int const * int const *
//fun1(ip);     //int * int *
//fun1(cp);    //int const *  int const *
//fun1(&ip);  //int **  int **
//fun1(&cp);  //int const ** int const **


//fun2(a);        //出错
//fun2(b);        //出错
//fun2(&a);     //int  int *
//fun2(&b);     //int       int const *
//fun2(ip);       //int   int *
//fun2(cp);         //int       int const *
//fun2(&ip);    //int *   int **
//fun2(&cp);    //int const *   int const **


//fun3(a);        //出错
//fun3(b);        //出错
//fun3(&a);     //int   int const *
//fun3(&b);     //int       int const *
//fun3(ip);       //int   int const *
//fun3(cp);         //int       int const *
//fun3(&ip);    //int *   int *const *
//fun3(&cp);    //int const *   int const *const*
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
陈教授将自己的生日M月N日中的M月告诉了小强 N告诉了小明 ;小强说我不知道,小明也不会知道 ;小明说我本来不知道的,现在我知道了 ;小强说我也知道的 ;你说陈教授到底是那一天生日? 3月4日 3 5 8 6 2 6 4 9 1 9 5 12 1 12 7 12 8 问题: 1、第一个答案是b的问题是哪一个? (a)2;(b) 3;(c)4;(d)5;(e)6 2、唯一的连续两个具有相同答案的问题是: (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; 3、本问题答案和哪一个问题的答案相同? (a)1;(b)2;(c)4;(d)7;(e)6 4、答案是a的问题的个数是: (a)0;(b)1;(c)2;(d)3;(e)4 5、本问题答案和哪一个问题的答案相同?    (a)10;(b)9;(c)8;(d)7;(e)6 6、答案是a的问题的个数和答案是什么的问题的个数相同?    (a)b;(b)c;(c)d;(d)e;(e)以上都不是 7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?    (a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母) 8、答案是元音字母的问题的个数是:    (a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母) 9、答案是辅音字母的问题的个数是:    (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数;(e)5的倍数 10、本问题的答案是: (a)a;(b)b;(c)c;(d)d;(e)e 1)。每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机),一箱油可供一架飞机绕地球飞半圈。   问:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?   (所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值