摘要:
名称的遮掩可以分成变量的遮掩与函数的遮掩两类,本质都是名字的查找方式导致的,当编译器要去查找一个名字时,它一旦找到一个相符的名字,就不会再往下去找了,因此遮掩本质上是优先查找哪个名字的问题。而查找是分作用域的,虽然本条款的命名是打着“继承”的旗子来说的,但我觉得其实与继承并不是很有关系,关键是作用域。举例子说明这个问题会比较好理解。1 //例1:普通变量遮掩2 int i = 3;3 4 int main()5 {6 int i = 4;7 cout << i << endl; // 输出48 }这是一个局部变量遮掩全局变量的例子,编译器在查找名字时,优先查找的是局部变 阅读全文