类构造函数
类构造函数是该类的特殊成员函数,只要我们创建该类的新对象 ,该函数便会执行。
构造函数的名称与类完全相同,没有任何返回类型,构造函数对于为某些成员变量设置初始值非常有用。
以下示例解释了构造函数的概念-
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