在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ 類的靜態(tài)成員
類的訪問修飾符
D語言運(yùn)算符
D語言邏輯運(yùn)算符
類指針
D語言元組
D語言指針
D語言模塊
D語言sizeof運(yùn)算符
D語言混合類型
D語言封裝
D語言條件編譯
類的靜態(tài)成員
D語言do...while循環(huán)
D語言結(jié)構(gòu)體
重載
D語言字符串-String
D語言決策語句
D語言接口
D語言for循環(huán)
D語言switch語句
D語言關(guān)聯(lián)數(shù)組
D語言范圍
D語言枚舉Enums
契約式編程
D語言并發(fā)
D語言開發(fā)環(huán)境設(shè)置
D語言別名
D語言常值
D語言常量
D語言函數(shù)
D語言if嵌套語句
D語言循環(huán)
D語言概述,D語言是什么?
D語言運(yùn)算符優(yōu)先級(jí)
D語言continue語句
D語言異常處理
D語言break語句
D語言if...else語句
D語言類和對(duì)象
類繼承
D語言字符
D語言教程
D語言關(guān)系運(yùn)算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語言抽象類
D語言if語句
D語言賦值運(yùn)算符
D中算術(shù)運(yùn)算符
D語言類成員函數(shù)
D語言位運(yùn)算符
D語言變量
D語言數(shù)據(jù)類型
D語言文件I/O
D語言數(shù)組
一元運(yùn)算符重載
D語言嵌套switch語句
D語言基本語法
二元運(yùn)算符重載
this指針
D語言聯(lián)合體
D語言模板
D語言嵌套循環(huán)
D語言while循環(huán)

類的靜態(tài)成員

我們可以使用static關(guān)鍵字定義類的靜態(tài)成員。當(dāng)我們聲明一個(gè)類的成員為靜態(tài)它意味著無論有多少的類的對(duì)象被創(chuàng)建,有靜態(tài)成員只有一個(gè)副本。

靜態(tài)成員是由類的所有對(duì)象共享。所有靜態(tài)數(shù)據(jù)被初始化為零,創(chuàng)建所述第一對(duì)象時(shí),如果沒有其他的初始化存在。我們不能把它的類的定義,但它可以在類的外部被初始化為通過重新聲明靜態(tài)變量做在下面的示例中,使用范圍解析運(yùn)算符::來確定它屬于哪個(gè)類。

讓我們?cè)囋囅旅娴睦泳兔靼琢遂o態(tài)數(shù)據(jù)成員的概念:

import std.stdio;

class Box
{
   public:
      static int objectCount = 0;
      // Constructor definition
      this(double l=2.0, double b=2.0, double h=2.0)
      {
         writeln("Constructor called.");
         length = l;
         breadth = b;
         height = h;
         // Increase every time object is created
         objectCount++;
      }
      double Volume()
      {
         return length * breadth * height;
      }
   private:
      double length;     // Length of a box
      double breadth;    // Breadth of a box
      double height;     // Height of a box
};



void main()
{
   Box Box1 = new Box(3.3, 1.2, 1.5);    // Declare box1
   Box Box2 = new Box(8.5, 6.0, 2.0);    // Declare box2

   // Print total number of objects.
   writeln("Total objects: ",Box.objectCount);

}

當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:

Constructor called.
Constructor called.
Total objects: 2

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

通過聲明一個(gè)函數(shù)成員為靜態(tài)的,把它獨(dú)立于類的任何特定對(duì)象。靜態(tài)成員函數(shù)可以被調(diào)用,即使存在的類的任何對(duì)象和靜態(tài)函數(shù)使用類名和作用域解析運(yùn)算符::訪問。

靜態(tài)成員函數(shù)只能訪問靜態(tài)數(shù)據(jù)成員,其他的靜態(tài)成員函數(shù),并從類以外的任何其他功能。

靜態(tài)成員函數(shù)有一個(gè)類范圍,他們沒有進(jìn)入這個(gè)指針之類的??梢允褂靡粋€(gè)靜態(tài)成員函數(shù)來判斷是否已創(chuàng)建或不是類的一些對(duì)象。

讓我們?cè)囋囅旅娴睦泳兔靼琢遂o態(tài)成員函數(shù)的概念:

import std.stdio;

class Box
{
   public:
      static int objectCount = 0;
      // Constructor definition
      this(double l=2.0, double b=2.0, double h=2.0)
      {
         writeln("Constructor called.");
         length = l;
         breadth = b;
         height = h;
         // Increase every time object is created
         objectCount++;
      }
      double Volume()
      {
         return length * breadth * height;
      }
      static int getCount()
      {
         return objectCount;
      }
   private:
      double length;     // Length of a box
      double breadth;    // Breadth of a box
      double height;     // Height of a box
};



void main()
{

   // Print total number of objects before creating object.
   writeln("Inital Stage Count: ",Box.getCount());

   Box Box1 = new Box(3.3, 1.2, 1.5);    // Declare box1
   Box Box2 = new Box(8.5, 6.0, 2.0);    // Declare box2

   // Print total number of objects after creating object.
   writeln("Final Stage Count: ",Box.getCount());
}

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

Inital Stage Count: 0
Constructor called.
Constructor called.
Final Stage Count: 2