问题及代码:

/*
*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;
}

改法2:加上全局限定符,使用的是本地定义的函数

/*
*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;
}

改法3:强调max函数的命名空间

#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;
}

改法4:去掉using namespace std;。在main中cout等std中的名称前加std::

#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;
}

改法5:仅仅使用std空间里的cout和endl

#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; }

改法6:将max定义在自己的空间内

#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; }

第十六周项目3:max带来的冲突相关推荐

  1. 第十六周项目一-小玩文件(2)

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...

  2. 第十六周项目一-小玩文件(1)

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...

  3. 第十六周项目3-有相同数字?

    输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字. 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学 ...

  4. 十六周项目一----冒泡排序

    /*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月19日 问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行 ...

  5. 第十六周 项目1 验证算法 堆排序

    堆排序 #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType ...

  6. 第十六周项目6-武功秘籍

    问题描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 . 小明只想练习该书的第a页到第 ...

  7. 第十六周项目1--验证算法--(6)堆排序

    问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:刘倩 *完成日期:2016年12月9日 *问题描述:用序列{57,40,38,11,13,34,48,75,6,19,9,7}作为测试数据 ...

  8. 耗子叔ARTS:第十六周

    耗子叔ARTS:第十六周 Algorithm: /*** 283. Move Zeroes* Easy* <p>* 2170* <p>* 79* <p>* Favo ...

  9. “进度条”博客——第十六周

    "进度条"博客 --第十六周 第十六周 所花时间(包括上课) 上课时间:本周一节课,共1.5个小时左右 课下时间: 周四下午3点半到6点半(最终修改BUG) 周五下午4点到6点半( ...

最新文章

  1. 相关性检验_相关系数
  2. String Reduction问题分析
  3. python画二维散点图-基于python 二维数组及画图的实例详解
  4. IntelliJ IDEA安装主题详细步骤
  5. 文件包含——本地无视后缀(二)
  6. android 内容显示栏,android – 在工具栏下显示内容
  7. python数字转字符串固定位数_python-将String转换为64位整数映射字符以自定...
  8. Intel的新玩法:固态硬盘也超频
  9. oracle月份相减函数,Oracle 日期函数的加减
  10. macd java 源代码_改良智能MACD指标公式及源代码
  11. 量子力学考研书籍介绍
  12. php正则表达式. 123,php正则表达式 - 路人甲123的个人页面 - OSCHINA - 中文开源技术交流社区...
  13. Centos6 yum安装VNC-server
  14. 数字图像处理:局部直方图处理(Local Histogram Processing)
  15. BlockingQueue队列有哪些
  16. 【C语言基础-」TurboC环境】-」bioskey函数详细分析
  17. webgis期末考试试题_《WebGIS课程》期末考试复习资料
  18. C语言中fputc和fgetc函数用法
  19. 大PK:大数据金融科技公司的聚焦
  20. androidPN java.lang.NoClassDefFoundError: org.androidpn.client.解决方法

热门文章

  1. 不正确的c语言语句是,最基本的C语言语句是( )
  2. java filter 返回错误消息_java filter 导致错误310
  3. matlab--微积分与微分方程
  4. 对时序逻辑电路采用不同描述方式,ISE综合出来的电路(RTL Schematic)比较(以模5计数器为例)
  5. Redhat 7 yum源换成centos的YUM 源
  6. 软件隐喻的本质与模式
  7. java 调用mysql存储过程
  8. jQuery 1.4 版本的十五个新特性-转载
  9. 泛函编程(19)-泛函库设计-Parallelism In Action
  10. vtigercrm学习(二)