亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

論靜態(tài)成員在C++中的應(yīng)用

  • 相關(guān)推薦

論靜態(tài)成員在C++中的應(yīng)用

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

【論靜態(tài)成員在C++中的應(yīng)用】相關(guān)文章:

論流體力學在選礦中的應(yīng)用(通用6篇)05-29

論《蠅王》中的異化主題05-18

論審美文化中的當代情結(jié)08-15

論刑法解釋中的利益相關(guān)性06-04

論企業(yè)組織結(jié)構(gòu)分類中的邏輯問題05-28

目標規(guī)劃及其在經(jīng)濟中的應(yīng)用05-11

論民事訴訟中的審判監(jiān)視程序06-03

論提單中仲裁條款的法律效力05-24

論醫(yī)療過錯原則在法律沖突中的適用06-04

論文:論新審計準則中的審計理念革新05-15