zoukankan      html  css  js  c++  java
  • C++中static类数据成员

    C++中static类数据成员是指以下两种: 类static成员函数 和 类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成员函数) 

       

  • 相关阅读:
    使用C# impersonation进行windows帐号的校验
    今天,如何将你现有的网站移动互联网化【译】
    吐槽一下拖延的生活状态
    Web前端开发工程师编程能力飞升之路【转】
    公司框架集成log4net时遇到的问题
    我所认知的电子商务解决方案
    Web开发攻城狮,欲善其事先利其器
    调用Web Service服务出现响应消息的内容类型text/html与绑定text/xml的内容类型不匹配
    服务器 '***' 上的 MSDTC 不可用
    Firefox中无法使用window.close()关闭窗口
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/2718589.html
Copyright © 2011-2022 走看看