首页 > 其他分享 >无涯教程-D语言 - 构造与解析函数

无涯教程-D语言 - 构造与解析函数

时间:2023-12-02 11:32:35浏览次数:41  
标签:教程 being double 无涯 len length line 解析 Line

类构造函数

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

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

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

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()); 
}

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

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()); 
}

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

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()); 
}

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

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

参考链接

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

标签:教程,being,double,无涯,len,length,line,解析,Line
From: https://blog.51cto.com/u_14033984/8654437

相关文章

  • 51k+ Star!动画图解、一键运行的数据结构与算法教程!
    大家好,我是Java陈序员。我们都知道,《数据结构与算法》——是程序员的必修课。无论是使用什么编程语音,亦或者是前后端开发,都需要修好《数据结构与算法》这门课!在各个互联网大产的面试中,对数据结构和算法的考核乐此不疲。往往《数据结构与算法》学得好的,都能拿到高薪!但是《数......
  • 无涯教程-Python - 泊松分布
    泊松分布是显示事件在预定时间段内可能发生的次数的分布,它用于独立事件,这些事件在给定的时间间隔内以恒定的速率发生,泊松分布是一个离散函数,意味着该事件只能按发生或不发生的方式进行度量,这意味着该变量只能按整数进行度量。无涯教程使用具有内置功能的seabornpython库来创建......
  • ArrayBuffer和Blob解析
    API介绍1、ArrayBuffer:用来表示通用的、固定长度的原始二进制数据缓冲区。它不能直接读写,只能通过视图(TypedArray视图和DataView视图)来读写,视图的作用是以指定格式解读二进制数据。2、TypedArray:一个TypedArray对象描述了底层二进制数据缓冲区的类数组视图3、DataView:DataVi......
  • 无涯教程-Python - 图形数据(Graph)
    CSGraph代表压缩稀疏图,其重点是基于稀疏矩阵表示的快速图算法。稀疏图图只是节点的集合,节点之间具有链接,图几乎可以代表任何事物-社交网络连接,其中每个节点都是一个人,并与熟人相连;图像,其中每个节点是一个像素,并连接到相邻像素;高维分布中的点,其中每个节点都连接到其最近的邻居,并......
  • 无涯教程-Python - 正态分布
    正态分布是通过排列数据中每个值的概率分布来呈现数据的形式,大多数值保持在平均值附近,从而使排列对称。无涯教程在numpy库中使用各种函数来数学计算正态分布的值。将创建直方图,在该直方图上绘制概率分布曲线。importmatplotlib.pyplotaspltimportnumpyasnpmu,sigma=0......
  • 无涯教程-Python - 中心趋势
    数学上的中心趋势是指测量数据集值的中心或位置分布,它给出了数据集中数据平均值的概念,并指出了这些值在数据集中分布的范围。反过来,这有助于评估将新输入拟合到现有数据集中的机会,从而评估成功的可能性。可以使用pandaspython库中的方法计算出集中趋势的三个主要量度。均值(Me......
  • Cadence OrCAD 功能操作教程
    1.导出BOM表操作顺序:选中当前要导出BOM表的原理图->Tool->BillofMaterials->设置Header和Combined->勾选OpeninExcel导出BOM表LineItemDefinition设置Header:Item\tQuantity\tReference\tPart\tPCBFootprint\tDescription\tPartNumberCombi......
  • 无涯教程-Python - 时间序列(Time)
    时间序列(TimeSeries)是一系列数据点,其中每个数据点都与时间戳关联,一个简单的示例是在给定的一天中,股票在不同时间点的价格,另一个示例是该地区一年中不同月份的降雨量。在下面的示例中,无涯教程以特定股票代码每天四分之一的股价价格为示例,将这些值捕获为一个csv文件,然后使用pan......
  • 案例解析关于ArkUI框架中ForEach的潜在陷阱与性能优化
    本文分享自华为云社区《深入解析ForEach的潜在陷阱与性能优化:错误用法与性能下降的案例分析》,作者:柠檬味拥抱。在ArkUI框架中,ForEach接口是基于数组类型数据进行循环渲染的强大工具。它需要与容器组件搭配使用,并能够根据数据源动态生成相应的子组件。以下是对ForEach接口的详细......
  • Python日志库Loguru教程
    标题Python日志库Loguru教程(最人性化的Python日志模块)1.What:我们需要一个什么样的日志库可以区分不同类型的日志:正常,警告,错误,严重。可以配置指定的日志文件名称。可以配置指定的日志格式。可以把不同的日志类型写到不同的文件中。可以配置按照时间,文件大小等条件对日志文......