16周【项目3-max带来的冲突】
2015-06-23 18:21
274 查看
问题描述:
【项目3-max带来的冲突】
分析下面程序出现的编译错误,给出解决的方案。
【项目3-max带来的冲突】
分析下面程序出现的编译错误,给出解决的方案。
<code class="hljs cpp has-numbering"><span style="color:#ff6666;"><strong><span style="font-size:18px;"><span style="font-family:KaiTi_GB2312;"><span class="hljs-preprocessor">#include<iostream></span> <span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> <span class="hljs-built_in">std</span>; <span class="hljs-comment">//定义函数模板</span> <span class="hljs-keyword">template</span><<span class="hljs-keyword">class</span> T> T max(T a, T b) { <span class="hljs-keyword">return</span> (a>b)?a:b; } <span class="hljs-keyword">int</span> main() { <span class="hljs-keyword">int</span> x=<span class="hljs-number">2</span>,y=<span class="hljs-number">6</span>; <span class="hljs-keyword">double</span> x1=<span class="hljs-number">9.123</span>,y1=<span class="hljs-number">12.6543</span>; <span class="hljs-built_in">cout</span><<<span class="hljs-string">"把T实例化为int:"</span><<max(x,y)<<endl; <span class="hljs-built_in">cout</span><<<span class="hljs-string">"把T实例化为double:"</span><<max(x1,y1)<<endl; <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>; }</span></span></strong></span></code>
<code class="hljs cpp has-numbering"><strong><span style="font-family:楷体_GB2312;font-size:18px;color:#ff6666;">分析:</span></strong></code>
<code class="hljs cpp has-numbering"><strong><span style="font-family:楷体_GB2312;font-size:18px;color:#ff6666;">因为这里我们自定义的函数名是max是类库里本来就有的所以在调用的时候会冲突。</span></strong></code>
<code class="hljs cpp has-numbering"><strong><span style="font-family:楷体_GB2312;font-size:18px;color:#ff6666;">解决在调用max函数时候前面加::</span></strong></code>
<code class="hljs cpp has-numbering"><strong><span style="font-family:楷体_GB2312;font-size:18px;color:#ff6666;">代码:</span></strong></code>
<code class="hljs cpp has-numbering"></code><pre class="cpp" name="code">#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; }
<code class="hljs cpp has-numbering"><strong><span style="font-family:楷体_GB2312;font-size:18px;color:#ff6666;">运行结果:</span></strong></code>
<code class="hljs cpp has-numbering"><img src="http://img.blog.csdn.net/20150623182842754?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenBfX193YWo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" /></code>
相关文章推荐
- loadrunner的日志
- 使用android-async-http发送soap异步请求
- 黑马程序员--Java学习日记之常见类的功能概述(多练习)
- View,ViewGroup的Touch事件的分发机制
- Nginx: Beginner’s Guide
- Apache Shiro 使用手册(五)Shiro 配置说明
- 第16周《C++语言基础》实践参考——有些数的阶乘不算了
- 前端定位
- 自定义actionbar
- 网络请求库Volley详解
- 【BZOJ3707】圈地 计算几何 旋转坐标系
- zabbix监控环境搭建错误(1)
- jQuery 选择器
- 程序员薪资福利指南
- 类似 nginx 编译时生成函数链表
- CMake 手册详解(二十三)
- IOU的yum源
- 选择排序
- CSS实现定位元素居中的方法
- linux下各种解包打包命令大全