在类中定义的数据成员和函数成员的作用域是整个类,这些名称只有在类中(包含类的定义部分和类外函数的实现部分)是可见的,在类外是不可见的。如果发生“屏蔽”的现象,类的成员的可见域小与作用域,但此时可借助this指针或“类名::”的形式访问类成员,这有些类似于使用“::“访问全局变量。
例子:
extern int x=100;
extern int z=100;
class Example
{
int x;
int y;
public :
Example(int x,int y)
{}
void print(int x)
{
cout<<"形参覆盖了成员X变量和全局X变量"<<x<<end1; //形参X覆盖了全局变量和局部变量X
cout<<"成员X变量"<<(this->x)<<end1;
cout<<"成员X变量"<<Example::x<<end1;
cout<<"全局X变量"<<(::x)<<end1; //访问全局变量X
cout<<"全局Z变量"<<z<<end1; //没有形参对全局变量Z构成屏蔽,直接访问Z即可
}
}
int main()
(
Example e;
x.print(5);
return 0;
)
输出结果:
5
0
0
100
200
时间: 2024-11-05 19:32:38