微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 正常功能和模板功能之间的优先级

在下面的代码中,main函数使用普通函数而不是Template函数.
#include <iostream>

using namespace std;

template <class T>
void num(T t){cout<<"T : "<<t;}

void num(int a){cout<<"wT : "<<a;}


int main()
{
    num(5);
    return 0;
}

这背后可能的原因是什么?

解决方法

在这种情况下调用模板方法,您需要使用num< int>(5)而不是num(5)显式调用方法.虽然编译器可以推断,但非泛型方法优于通用方法.您可以在这里查看此行为 http://ideone.com/ccDJP.

原文地址:https://www.jb51.cc/c/111632.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐