<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 論靜態成員在C++中的應用

    時間:2024-07-22 21:18:10 計算機應用畢業論文 我要投稿
    • 相關推薦

    論靜態成員在C++中的應用

      
      [論文關鍵詞]C++ 靜態成員 共享
      [論文摘要]
    C++類中的靜態成員是類中各個對象所共享的成員,從數據共享的角度出發,介紹靜態成員在類中實現數據共享的方法、作用。
      
      C++中類的成員分為靜態數據成員和靜態成員函數。它的作用類似于全局變量,可以實現C++多個對象之間的數據共享,但全局變量在程序中的可操作性難于控制,經常會帶來不安全性,所以,考慮到程序的安全性,作者在本文講述了靜態成員在C++程序中的使用方法及作用。
      
      一、靜態數據成員的應用
      
      C++中的靜態數據成員是同一個類中所有對象所共享的成員,靜態數據成員中存放的是所有對象的值,不是某一個對象的值,所以同一類中的每個對象的值都是一樣,但它的值也是可以改變的。通過下面的實例可以對以上的內容加以證實、說明靜態數據成員在C++類中的使用方法及作用。
      (一)靜態數據成員的定義、初始化
      靜態數據成員定義是以static關鍵字開始,后跟靜態數據成員類型符、變量名;例:staticints;
      (二)靜態數據成員的初始化
      靜態數據成員的初始化是在類體外進行,初始化時不用加訪問權限符,但是靜態成數據成員是類的成員,所以在初始化時應指明該成員的類名;例如在類名為 Tstu的類中定義了一名為s整型靜態數據成員,則初始化格式為:int Tstu::s =0;
      (三)靜態數據成員的引用實例
      #include
      class Tstu//類的說明;
       {public://定義二個成員函數;
       Tstu(int a,int b); //定義構造函數,用來對數據成員賦初值;
       bb( );
       private:
      int x,y;//定義二個數據成員;
      static int s;};//定義一個靜態的數據成員,類Tstu定義結束;
      int Tstu::s=0; //靜態數據成員的賦值;
      Tstu::Tstu(int a,int b)//構造函數的實現部分;
      { x=a;y=b;}
      void Tstu::bb( )//成員函數的實現部分;
      {s=s+x+y;cout<<”s=”<  void main( )//主函數;
      {Tstu t1(10,20),t2(5,3);
       t1.bb( );t2.bb( );}
      對于以上的程序,類Tstu中的t1對象調用成員函數bb( )之后,靜態數據成員s中的值是30,那么對象t2在調用前,對于對象t2,s中的值已是30,因為s中的值是每個對象所共享的,t2對象調用后,s中最后的值是38。
      我們再來看以下代碼:
      #include
      class Ta{
      public:
      Ta(){n++; } //定義構造函數,當定義對象時n的值自動加1;
      ~Ta(){n--; } //定義析構函數,釋放對象時n的值自動減1;
      int sum(){return n; }//成員函數sum( )用來返回靜態數據成員n的值;
      private:
       static int n;};
      int Ta::n = 0;
      當創建該類對象實體時,由于n為所有對象所共享的數據,從而可以當前創建的所有對象的數量。這一技巧可以運用到很多方面,如對象實體的互斥關系,引用計數等相關方面。C++類中的靜態成員有一個非常好的功能,那就是無論類定義了多少個對象,這些對象始終都共同使用這一個靜態成員,在使用時需要注意的是類靜態數據成員除了在類中形式說明之外,必須在使用前在對象說明之外作定義性說明,主要是為了給類中靜態數據成員分配內存。通過這個實例可更加清晰的解述靜態數據成員在類中實現數據的方法、作用。
      
      二、靜態成員函數的應用
      
      靜態成員函數與靜態成員的特性相似,屬于類的成員,不是對象的成員。在靜態成員函數的實現中,可以直接引中類中說明的靜態成員。下面通過具體的實例說明靜態成員函數的應用。
      我們可以通過以下的代碼來看看靜態成員函數的應用:
      #include
       class T
       {public:
       T(int a){x=a;y=y+a;}
       Static void f1(T t);//定義靜態成員函數;
       Private:
      int x;
      static int y;};
      void T::f1(T t)
       {cout<<”x=”<   cout<<”y=”<  int T::y=0;
      void main( )
      {T m1(2),m2(4);
      T::f1(m1);T::f1(m2);}
      以上程序的執行結果分別是x=2,y=6和x=4,y=6; 在T類中,定義了靜態成員函數f1( ),在該函數的實現中,可以直接引有類的靜態數據成員,但引用非靜態成員是通過對象進行的,對于類靜態函數成員而言,則該函數只能涉及其它類靜態成員時,否則該函數不具有任何確切含義,因為不同對象非靜態成員取值可能不同。
      
      三、
      
      本文是筆者根據自己多年教學體會及經驗,用簡單的例子和簡練的敘述講解C++中靜態成員在實現數據共享中的應用,作用。文中如有不足之處,望各位讀者批評指正。
      
      參考文獻:
      [1]張素琴.C++程序設計[M].北京:清華大學出版社.1995.
      [2]呂軍,楊琦等.Visual C++與面向對象程序設計教程[M].北京:高等出版社.2006.
      

    【論靜態成員在C++中的應用】相關文章:

    論知識管理在企業中的應用03-17

    論力學在橋梁設計中的應用06-15

    論超聲在各個病重中的康復應用11-15

    論PowerPoint在英語教學中的應用12-06

    論動畫場景設計中的色彩應用12-03

    論音樂在幼兒教育中的應用論文11-30

    論等效翻譯及其在漢英翻譯中的應用03-11

    論數學建模在經濟學中的應用03-19

    論Excel在日常工作中的應用03-27

    主站蜘蛛池模板: 91人前露出精品国产| 精品久久久久久99人妻| 国内精品久久久久久麻豆 | 91精品国产综合久久久久久| 精品无码人妻一区二区三区不卡| 国产AV午夜精品一区二区三区| 久久亚洲精品无码播放| 亚洲精品高清久久| 97精品一区二区视频在线观看| 亚洲国产精品无码久久一线| 国产乱码伦精品一区二区三区麻豆| 99爱在线精品免费观看| 亚洲高清国产AV拍精品青青草原| 国内精品欧美久久精品| 四虎4hu永久免费国产精品| 国产成人精品优优av| 亚洲国产精品无码久久久蜜芽| 久久99精品久久久久久噜噜| 国内精品在线视频| 国产精品无码无片在线观看| 亚洲欧洲久久久精品| 麻豆精品视频在线观看| 黑巨人与欧美精品一区| 99久久伊人精品综合观看| 国产精品高清一区二区三区不卡| 精品9E精品视频在线观看| 性欧洲精品videos| 正在播放国产精品每日更新 | 曰韩精品无码一区二区三区| 精品多毛少妇人妻AV免费久久| 99riav国产精品| 夜色www国产精品资源站| 国产亚洲福利精品一区| 91麻豆精品视频在线观看| 国产精品免费高清在线观看| 久久99精品久久久久久久久久| 欧洲精品色在线观看| 色欲精品国产一区二区三区AV| 亚洲色精品vr一区二区三区| 中文字幕一精品亚洲无线一区 | 99久久免费国产精品热|