D语言 中的 构造与解析函数

首页 / D语言入门教程 / D语言 中的 构造与解析函数

类构造函数

类构造函数是该类的特殊成员函数,只要我们创建该类的新对象 ,该函数便会执行。

构造函数的名称与类完全相同,没有任何返回类型,构造函数对于为某些成员变量设置初始值非常有用。

以下示例解释了构造函数的概念-

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(); 
   
   //设置行长
   line.setLength(6.0); 
   writeln("Length of line : " , line.getLength()); 
}

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/d-programming/d-programming-constructor-destructor.html

来源:LearnFk无涯教程网

Object is being created 
Length of line : 6 

参数化构造函数

分配初始值,如以下示例所示-

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; 
} 
 
//程序的主函数
void main( ) { 
   Line line=new Line(10.0);
   
   //获取初始设置的长度。
   writeln("Length of line : ",line.getLength()); 
    
   //再次设置行长
   line.setLength(6.0); 
   writeln("Length of line : ", line.getLength()); 
}

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/d-programming/d-programming-constructor-destructor.html

来源:LearnFk无涯教程网

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

类析构函数

析构函数的名称与以波浪号(~)为前缀的类的名称完全相同,它既不能返回值,也不能采用任何参数,如关闭文件,释放内存等。

以下示例解释了析构函数的概念-

无涯教程网

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; 
}
  
//主函数
void main( ) { 
   Line line=new Line(); 
   
   //设置行长
   line.setLength(6.0); 
   writeln("Length of line : ", line.getLength()); 
}

编译并执行上述代码后,将产生以下输出-

链接:https://www.learnfk.comhttps://www.learnfk.com/d-programming/d-programming-constructor-destructor.html

来源:LearnFk无涯教程网

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

软件工程之美 -〔宝玉〕

研发效率破局之道 -〔葛俊〕

说透中台 -〔王健〕

视觉笔记入门课 -〔高伟〕

物联网开发实战 -〔郭朝斌〕

恋爱必修课 -〔李一帆〕

如何讲好一堂课 -〔薛雨〕

Dubbo源码剖析与实战 -〔何辉〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)