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

鍍金池/ 教程/ C++/ 構(gòu)造函數(shù)和析構(gòu)函數(shù)
類的訪問修飾符
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)先級
D語言continue語句
D語言異常處理
D語言break語句
D語言if...else語句
D語言類和對象
類繼承
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)

構(gòu)造函數(shù)和析構(gòu)函數(shù)

類的構(gòu)造函數(shù):

一個(gè)類的構(gòu)造函數(shù)是每當(dāng)我們創(chuàng)建一個(gè)類的新對象時(shí)執(zhí)行的類的一個(gè)特殊的成員函數(shù)。

構(gòu)造函數(shù)將有完全相同于類的名稱,它不具有任何返回類型可言,甚至不是void。構(gòu)造函數(shù)可以是非常有用的為某些成員變量設(shè)置初始值。

下面的例子說明了構(gòu)造函數(shù)的概念:

import std.stdio;

class Line
{
   public:
      void setLength( double len )
      {
        length = len;
      }

      double getLength()
      {
         return length;
      }
      this()
      {
         writeln("Object is being created");
      }

   private:
      double length;
}

void main( )
{
   Line line = new Line();

   // set line length
   line.setLength(6.0);
   writeln("Length of line : " , line.getLength());
}

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

Object is being created
Length of line : 6

參數(shù)化構(gòu)造函數(shù):

默認(rèn)構(gòu)造函數(shù)沒有任何參數(shù),但如果需要,構(gòu)造函數(shù)可以有參數(shù)。這可以幫助您在其創(chuàng)建為顯示在下面的例子中,初始值分配給某個(gè)對象時(shí):

import std.stdio;

class Line
{
   public:
      void setLength( double len )
      {
         length = len;
      }

      double getLength()
      {
         return length;
      }
      this( double len)
      {
         writeln("Object is being created, length = " , len );
         length = len;
      }

   private:
      double length;
}

// Main function for the program
void main( )
{
   Line line = new Line(10.0);

   // get initially set length.
   writeln("Length of line : ",line.getLength());
   // set line length again
   line.setLength(6.0);
   writeln("Length of line : ", line.getLength());

}

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

Object is being created, length = 10
Length of line : 10
Length of line : 6

類的析構(gòu)函數(shù):

析構(gòu)函數(shù)執(zhí)行時(shí),類的一個(gè)對象超出范圍或當(dāng)delete表達(dá)式應(yīng)用到一個(gè)指針,指向該類的對象類的一個(gè)特殊成員函數(shù)。

析構(gòu)函數(shù)將有完全相同的名稱作為類的前綴與符號(?),它可以既不返回一個(gè)值,也不能帶任何參數(shù)。析構(gòu)函數(shù)可以是走出來的程序如關(guān)閉文件,釋放內(nèi)存等前釋放資源非常有用的

下面的例子說明了析構(gòu)函數(shù)的概念:

import std.stdio;

class Line
{
   public:
      this()
      {
         writeln("Object is being created");
      }
      ~this()
      {
         writeln("Object is being deleted");
      }

      void setLength( double len )
      {
         length = len;
      }

      double getLength()
      {
         return length;
      }
   private:
      double length;
}


// Main function for the program
void main( )
{
   Line line = new Line();

   // set line length
   line.setLength(6.0);
   writeln("Length of line : ", line.getLength());

}

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

Object is being created
Length of line : 6
Object is being deleted