如果一个C++类成员函数访问一个包含定义重载的变量名,定义既作为类的成员变量,又作为成员函数定义的全局范围中的变量,那么成员函数将实际访问哪个变量?情况如下:
某某阶层:
class SomeClass
{
int Num;
void OperateOnNum();
};SomeClass.cpp:
#include "SomeClass.h"
int Num;
void SomeClass::OperateOnNum()
{
Num = 0;
}OperateOnNum将对哪一个名词进行手术?Microsoft Visual Studio 2013和GCC (版本: gcc (Ubuntu4.8.2-19ubuntu1) 4.8.2)都没有发出警告。
发布于 2014-12-17 15:04:46
在这种情况下,类成员参数阴影全局变量。因此,您可以在方法的范围内看到它。
https://stackoverflow.com/questions/27528453
复制相似问题