同名成员或函数的屏蔽规则
2013-06-08 13:37
127 查看
在《C++ Primer》中搜索“屏蔽”,会搜索到在不同作用域中声明或定义同名函数或变量的一些常见问题和规则,诸如:
“在函数内定义一个与函数可能会用到的全局变量同名的局部变量总是不好的。局部变量最好使用不同的名字。”
“。 在函数中局部声明的名字将屏蔽在全局作用域(第 2.3.6 节)内声明的同名名字。这个关于变量名字的性质对
于函数名同样成立”
“一般的作用域规则同样适用于重载函数名。如果局部地声明一个函数,则该函数将屏蔽而不是重载在外层作用域中声明的同名函数。由此推论,每一个版本的重载函数都应在同一个作用域中声明。
一般来说,局部地声明函数是一种不明智的选择。函数的声明应放在头文件中。”
等等
“在函数内定义一个与函数可能会用到的全局变量同名的局部变量总是不好的。局部变量最好使用不同的名字。”
“。 在函数中局部声明的名字将屏蔽在全局作用域(第 2.3.6 节)内声明的同名名字。这个关于变量名字的性质对
于函数名同样成立”
“一般的作用域规则同样适用于重载函数名。如果局部地声明一个函数,则该函数将屏蔽而不是重载在外层作用域中声明的同名函数。由此推论,每一个版本的重载函数都应在同一个作用域中声明。
一般来说,局部地声明函数是一种不明智的选择。函数的声明应放在头文件中。”
等等
相关文章推荐
- C++继承详解之二——派生类成员函数详解(函数隐藏、构造函数与兼容覆盖规则)
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++中,经常有同名成员函数,一个const形式一个非const形式的解读
- 条款44:尽量用成员函数代替同名的算法
- C++如何在类的成员函数中表示同名的全局变量?
- C++继承具体解释之二——派生类成员函数具体解释(函数隐藏、构造函数与兼容覆盖规则)
- C++类中调用与成员函数同名的全局函数
- C++ const 参数 成员函数 规则
- 7.26派生类成员函数与基类成员函数同名
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++中指向子类的父类指针访问父、子类成员时的权限和函数隐藏规则
- C++子类对象隐藏了父类的同名成员函数(隐藏篇)
- 同名的const 成员函数
- C++基础篇--成员函数同名隐藏(overwrite)
- c++中基类和子类的成员变量同名,成员函数也同名
- 飛field(八十四)当基类同名成员函数定义为纯虚函数后,发生了什么现象?为什么会这样?
- c++ 基类已经存在virtual修饰的同名成员函数,派生类加不加无所谓,都是virtual的
- Effective STL: Item 44:优先使用与泛型算法同名的成员函数
- 函数参数和数据成员同名
- c++之——派生类的同名成员和函数调用方式及构造析构顺序