C++模板选择问题
答案:2 悬赏:30
解决时间 2021-01-10 11:43
- 提问者网友:且恨且铭记
- 2021-01-09 20:30
C++模板选择问题
最佳答案
- 二级知识专家网友:独行浪子会拥风
- 2021-01-09 21:22
都会选择第一个;
对于f(42),template中的T被认为是一个int类型的数,即T=int;
对于f(p),template 中的T被认为是一个int类型的指针,即T=int*;
追问:对于f(p)为什么不会选择第二个,第二个T = int就可以了,非常量的指针可以赋给常量的指针
追答:template中的T代表的传入参数的类型,而很明显f(p)传入的是参数p,p的类型是int*,所以T=int*
对于templatevoid f(T*)不会被调用,因为T≠T*
对于f(42),template
对于f(p),template
追问:对于f(p)为什么不会选择第二个,第二个T = int就可以了,非常量的指针可以赋给常量的指针
追答:template
对于template
全部回答
- 1楼网友:詩光轨車
- 2021-01-09 21:44
两个都match,所以理论上来说会有歧义
如果使用f<int*>(p);
就会调用第一个
如果使用f<int>(p);
就会调用第二个
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯