标签:
问题及代码:
/* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年6月28日 *版 本 号:v1.0 * *问题描述:分析下面程序出现的编译错误,给出解决的方案。 *程序输入: *程序输出: */ #include<iostream> using namespace std; //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<max(x,y)<<endl; cout<<"把T实例化为double:"<<max(x1,y1)<<endl; return 0; }改法1:改变函数名字,使之不与std空间内函数重名
#include<iostream> using namespace std; //定义函数模板 template<class T> T max1(T a, T b)//将函数改为max1 { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<max1(x,y)<<endl; cout<<"把T实例化为double:"<<max1(x1,y1)<<endl; return 0; }
/* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:project.cpp *作 者:陈文青 *完成日期:2015年6月28日 *版 本 号:v1.0 * *问题描述:分析下面程序出现的编译错误,给出解决的方案。 *程序输入: *程序输出: */ #include<iostream> using namespace std; //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<::max(x,y)<<endl;//加上全局限定符 cout<<"把T实例化为double:"<<::max(x1,y1)<<endl; return 0; }
#include<iostream> using namespace std; //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<std::max(x,y)<<endl; //强调是std空间内的函数 cout<<"把T实例化为double:"<<std::max(x1,y1)<<endl; return 0; }
#include<iostream> //不使用std空间 //using namespace std; //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; std::cout<<"把T实例化为int:"<<max(x,y)<<std::endl; //声明endl和cout的空间 std::cout<<"把T实例化为double:"<<max(x1,y1)<<std::endl; return 0; }
#include<iostream> using std::cout;//只使用std空间里的cout和endl using std::endl; //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<max(x,y)<<endl; cout<<"把T实例化为double:"<<max(x1,y1)<<endl; return 0; }
#include<iostream> using namespace std; namespace m //将max定义在m空间里 { //定义函数模板 template<class T> T max(T a, T b) { return (a>b)?a:b; } } int main() { int x=2,y=6; double x1=9.123,y1=12.6543; cout<<"把T实例化为int:"<<m::max(x,y)<<endl; //使用自己m空间内的max函数 cout<<"把T实例化为double:"<<m::max(x1,y1)<<endl; return 0; }
标签:
原文地址:http://blog.csdn.net/destiny_forever/article/details/46673519