名字覆盖问题与命名规范
2016-07-09 00:09
218 查看
this ->是可以省略的
为了让代码更简洁,this->是可以省略的。编译器会自己给它加上this->.
重名问题:就近原则
(1)在成员函数里:当局部变量与成员变量重名时,该变量指向的是局部变量。
如果要指定成员变量x,则必须加上this->的规定
(2)在成员函数里,当成员变量与全局变量重名时,该变量指向的是成员变量
注:如果要指定全局变量x,则必须加上::x
(3)在成员函数与全局函数重名时,默认指成员函数::全局符号
为了让代码更简洁,this->是可以省略的。编译器会自己给它加上this->.
class Object { public: int x; int y; public: int Add() { return x+y;//相当于this->x+this->y } void Test() { printf("Sum:%d\n",Add());//相当于this->Add(); } };
重名问题:就近原则
(1)在成员函数里:当局部变量与成员变量重名时,该变量指向的是局部变量。
class Object { public: int x; void Test(int x) { printf("x=%d\n",x);//最近的:函数内定义的x } };
如果要指定成员变量x,则必须加上this->的规定
(2)在成员函数里,当成员变量与全局变量重名时,该变量指向的是成员变量
int x=10;//全局变量 class Object { public: int x; void Test(int x) { printf("x=%d\n",x);//最近的x:成员变量x } };
注:如果要指定全局变量x,则必须加上::x
(3)在成员函数与全局函数重名时,默认指成员函数::全局符号
相关文章推荐
- 在Fragment、PreferenceFragment和OnPreferenceClickListener()里获取Activity
- 跟着w3c标准来探讨display:none;与visibility:hidden;的区别
- 设置centos 和win文件共享
- 腾讯云linux系统yum安装软件——以nginx为例
- 李洪强漫谈iOS开发[C语言-007]-语言标准简介
- JAVA第二课——事件监听以及画板的制作
- Guava collections -- BiMap
- Android中SQLite使用事务
- 读书笔记:《算法导论》,写在前面
- 走遍世界 —— 海地
- Percona/MariaDB/MySQL
- React Native控件之Touchable*系列组件详解(28)
- 设计模式系列:(2)Factory Method Patterns
- Android判断EditText输入的数字、中文还是字母方法
- 数组reduce方法的高级技巧
- 老乡别走,比特币快减半了
- java ZXing生成二维码及条码实例分享
- Android Studio官方文档之使用Lint提高你的代码质量篇
- Centos PHP 扩展Xchche的安装教程
- PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )