乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      static和const修飾的類成員

       火離 2010-03-17

      static和const修飾的類成員

       

      類的static靜態(tài)數(shù)據(jù)成員:

      class A
      {
         public:
            static int i ;
      };

      初始化方法: int  A::k=100;     

       //靜態(tài)成員變量的初值只應該設定一次,不要把初始化操作放在類的構造函數(shù)中,因為構造函數(shù)可能一再被調用,也不要放在類的頭文件中,因為頭文件可能被載入許多地方從而被執(zhí)行許多次。初始化時必須寫上數(shù)據(jù)類型(int)和類名限定(A::),就像類的函數(shù)成員實現(xiàn)時必須寫上函數(shù)返回值類型和類名限定一樣。

       

      類的static靜態(tài)函數(shù)成員:

      class A
      {
         public:
            static void  fun( ) ;
      };

      實現(xiàn)方法: 

      void A::fun( )
        {cout<<"class A fun()!";}

      //在類的源文件.cpp里進行函數(shù)實現(xiàn),實現(xiàn)方法跟普通函數(shù)成員的實現(xiàn)一樣。類的靜態(tài)函數(shù)只能訪問該類的靜態(tài)數(shù)據(jù)成員或靜態(tài)函數(shù)成員。如果要訪問非靜態(tài)數(shù)據(jù)成員必須通過參數(shù)傳遞得到類對象名,然后通過對象名來訪問。如下:

      class A
      {
      public:
          static void  fun(A a ) ;
          int i;
      }
      ;

      函數(shù)實現(xiàn):

      void A::fun(A a )
      {  
       a.i=55; 
       cout<<a.i;
      }

       

      類的const常數(shù)據(jù)成員:

      class A
      {
      public:
          A(int j);
          const int i;
      }
      ;

      初始化方法:

      A::A(int j):i(j)
      {  }

      //常數(shù)據(jù)成員只能通過構造函數(shù)初始化列表來獲取初值。常數(shù)據(jù)成員得到初值后不能更新。

       

      類的const常函數(shù)成員:

      class A
      {
      public:
          A(int j,int m);
          const int i;
          int q;
          static int k;
          void  fun( )  const
      }
      ;

       

      函數(shù)實現(xiàn):

      A::A(int j,int m ):i(j),q(m)
      {  }

      int A::k=456;

      void A::fun( ) const
      {   k=789;     //正確,能對靜態(tài)數(shù)據(jù)成員更新。
          q=111;     //錯誤,不能對普通數(shù)據(jù)成員更新。
           i=222;     //錯誤,常數(shù)據(jù)成員初始化后不能更新。
         cout<<i<<endl<<q<<endl<<k;   //正確,能訪問所有數(shù)據(jù)成員。
      }

      //常函數(shù)成員能訪問常數(shù)據(jù)成員,靜態(tài)數(shù)據(jù)成員和普通數(shù)據(jù)成員,但不能對常數(shù)據(jù)成員和普通數(shù)據(jù)成員更新。

       

      類的const對象(常對象)

      const A(123,456);

      類的常對象只能調用該類的常函數(shù)成員,由于常函數(shù)成員不能對常數(shù)據(jù)成員和普通數(shù)據(jù)成員更新,只能對靜態(tài)數(shù)據(jù)成員更新,所以常對象不能修改自己的數(shù)據(jù)成員,也因此才能叫常對象。(靜態(tài)成員不屬于一個對象而屬于整個類。)

       

      類的靜態(tài)常數(shù)據(jù)成員

      class A
      {
      public:
          A(int j,int m);
         const int i;
         int q;
         static const int k;
         void  fun( )  const ; 
      }
      ;

      函數(shù)實現(xiàn):

      A::A(int j,int m):i(j),q(m)
      {  }

      const int A::k=789;     //類的靜態(tài)常數(shù)據(jù)成員類似于靜態(tài)數(shù)據(jù)成員賦初值,但要記得前面加const。

      void A::fun( ) const
      {   k=111;                  //錯誤,靜態(tài)常數(shù)據(jù)成員也是常數(shù)據(jù)成員,常數(shù)據(jù)成員得到初值后不能更新。
          cout<<i<<endl<<q<<endl<<k;    //正確,能訪問靜態(tài)常數(shù)據(jù)成員。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多