#include<iostream>
using namespace std;
void Add(int a,int b)//若用引用方法传入是不会进行隐式转换的
{
cout << a + b << endl;
}
template<typename T>
void m_add(T a, T b)
{
cout << a + b << endl;
}
int main()
{
int a = 10;
int b = 20;
char c = 'c';
//普通构造函数存在隐式转换
Add(a, c);
//自动类型推导调用不会进行隐式转换
//m_add(a,c);
//显示指定类型推导
m_add<int>(a, c);
m_add(a, b);
return 0;
}
C++ 模板:普通函数与函数模板的区别
最新推荐文章于 2024-08-09 10:25:03 发布
该代码示例展示了C++中的隐式转换在函数调用中的作用,以及模板函数如何处理不同类型参数。`Add`函数使用引用避免了隐式转换,而模板函数`m_add`通过类型推导可以接受不同类型的参数,但不会自动进行隐式转换。在主函数中,调用`Add`函数时发生了整型与字符的隐式转换,而模板函数需通过类型指定或自动类型推导来正确执行。
摘要由CSDN通过智能技术生成