|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 SHARK_8 于 2018-3-31 11:09 编辑
#include <iostream>
template <typename T>
int add(T , T);//以函数模板形成定义为实例化
template int add<int> (int, int);//显示实例化
template <> int add<double>(double,double);//显示具体化
double add(double a, double b);//普通函数
int main()
{
std::cout << add(1.0,2.0) << std::endl ;//用普通函数
return 0;
}
template <typename T>
int add(T a, T b)
{
std::cout << "正在使用模板";
return a+b;
}
template <> int add<double>(double a,double b)
{
std::cout << "正在使用显示具体化";
return a+b;//不同的方法
}//具体化另外定义
double add(double a, double b)
{
std::cout << "正在使用普通函数";
double total= a+b;
return total;
}
编译
为什么不这样
- #include <iostream>
- template <typename T>
- T add(T a, T b);//以函数模板形成定义为实例化
- double add(double a, double b);//普通函数
- int main()
- {
- std::cout << add(1,2) << std::endl ;//用普通函数
- return 0;
- }
- template <typename T>
- T add(T a, T b)
- {
- std::cout << "正在使用模板";
- return a+b;
- }
- double add(double a, double b)
- {
- std::cout << "正在使用普通函数";
- double total= a+b;
- return total;
- }
复制代码
|
|