static关键字使用注意事项



一:使用类的static成员的优点


    1:static成员的名字是在类的作用域中,因此可以避免与其他类的成员或者全局对象名字的冲突


    2:可以实施封装。static成员可以是私有成员,而全局对象不可见


    3:通过阅读程序容易看出来static成员与特定类关联的。


二:static成员的定义


    static成员遵循正常的共有/私有访问规则,不过都可以通过  classname::成员 进行访问,不论成员是私有还是共有


三:使用类的static成员


    对类的static成员的使用以下几种方式都可以    通过classname::成员   通过class对象.成员  通过class对象引用.成员


        通过class对象指针->成员  不论是static成员函数还是static数据成员都可以这样使用


四:static函数没有this指针


     因为static成员是类的组成部分而不是任何对象的组成部分


五:static成员的声明和定义


     一般来说我们在类的作用与范围内只是声明static成员,并不进行定义


      对static成员函数的声明和定义遵循以下规则


         1:在类A中声明static成员get()


             class A{


                      public:


                     static void get();


        };


          2:对static成员函数的定义放在类的函数定义中,但是必须要去掉关键字static


               static  void A::get(){}   //这是错误的


               void A::get(){}         //这是对的


     对static数据成员的定义遵循以下规则


     1:static数据成员在类的作用域范围内是声明,static数据成员的定义必须放在类的作用域外面


          并且对static数据成员的定义要单独,不能把它放到类的某一个函数定义中去


        class A{


      public:


      void set();


                private:


               static int n;


      };


           void A::set()


      {


                    int A::n=10;      //这是错误的


      }


          /********/


           int  A::n=10;          //这是对的,要对它单独定义


     2: 对const static数据成员必须在声明是对它进行赋值,在类作用域外部对不对它在进行定义都无所谓,但提倡在定义


           class A{


       public:


       const static int n=10;


      }


      const int n;  //对const static数据成员的在定义


六:最重要的一点,在static成员函数中,只能使用类的static成员(包括static数据成员和static成员函数)  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值