C++类的作用域和可见域

        在类中定义的数据成员和函数成员的作用域是整个类,这些名称只有在类中(包含类的定义部分和类外函数的实现部分)是可见的,在类外是不可见的。如果发生“屏蔽”的现象,类的成员的可见域小与作用域,但此时可借助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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值