不同作用域的重名问题
来源:互联网 发布:linux tar命令unzip 编辑:程序博客网 时间:2024/06/05 18:32
先看一段代码,如果不看后面的讲解,你就能看懂,那表明你已经明白了不同作用域的同名变量覆盖问题了。
这段小程序的输出结果是什么?
#include <iostream>#include <vector>typedef int INT4;class Oops{};Oops& operator< (Oops &ref1 , Oops &ref2){std::cerr << "Amazing!" << std::endl;return ref1;}Oops& operator> (Oops &ref1, Oops &ref2){std::cerr << "Bazinga" << std::endl;return ref2;}int main(){Oops vector;Oops INT4;Oops foo;vector<INT4> foo;return 0;}
在揭晓答案之前,我们先分析一下不同作用域的重名覆盖问题。在一个嵌套的作用域中,如果出现了同名的变量,那么局部的将覆盖大作用域中的变量名。
所以main函数中的vector、INT4、foo都是Oops类对象,而vector〈INT4是调用了重载运算符<,之后那个也是重载运算符>。
所以运行结果为:
Amazing!
Bazinga
0 0
- 不同作用域的重名问题
- 关于C和C++不同源文件中重名变量的问题
- 重名CSS定义的问题
- 删除Target 重名的问题...
- 表单域name和js函数重名引起的问题
- 重名问题
- visual stdio不同目录下的文件重名,类重名问题解决方法
- 关于删除允许重名项的问题
- mybatis 中属性重名的问题。
- 拦截器的重名使用问题
- 全局以及局部变量的重名问题
- Android定制权限重名引起的问题
- 关于重名文件重命名的问题
- 与系统函数distance重名的问题
- android 中不同的Xml中id可以重名吗?
- 防止不同js文件中方法重名的解决办法
- 解决VC6和VC2008的for循环变量作用域不同问题的一个方法
- 原型作用域内不能重名
- 系统分析 UML 类图关系比较
- 3.zookeeper原理解析-数据存储之TxnLog事务日志
- 数据结构之分治法(最短距离)-(十一)
- 计算机常识 和 应用技巧
- 一起talk Vim吧(第十三回:Vim刀法总结)
- 不同作用域的重名问题
- 程序员的《学习之道》
- Distinct Subsequences -- leetcode
- javascript中字符串常用操作总结、JS字符串操作大全
- topcoder-srm610-div2-550(暴力乱搞)
- servlet开发5-servlet返回html界面
- 4.zookeeper原理解析-数据存储之FileTxnLog& FileTxnSnapLog工具
- 不包含适合于入口点的静态“Main”方法
- [转]Unicode与UTF-8互转(C语言实现)