- D 编程基础
- D 编程 - 主页
- D 编程 - 概述
- D 编程 - 环境
- D 编程 - 基本语法
- D 编程 - 变量
- D 编程 - 数据类型
- D 编程 - 枚举
- D 编程 - 文字
- D 编程 - 运算符
- D 编程 - 循环
- D 编程 - 决策
- D 编程 - 函数
- D 编程 - 字符
- D 编程 - 字符串
- D 编程 - 数组
- D 编程 - 关联数组
- D 编程 - 指针
- D 编程 - 元组
- D 编程 - 结构
- D 编程 - 联合
- D 编程 - 范围
- D 编程 - 别名
- D 编程 - Mixins
- D 编程 - 模块
- D 编程 - 模板
- D 编程 - 不可变
- D 编程 - 文件 I/O
- D 编程 - 并发
- D 编程 - 异常处理
- D 编程 - 合同
- D - 条件编译
- D 编程 - 面向对象
- D 编程 - 类和对象
- D 编程 - 继承
- D 编程 - 重载
- D 编程 - 封装
- D 编程 - 接口
- D 编程 - 抽象类
- D 编程 - 有用的资源
- D 编程 - 快速指南
- D 编程 - 有用的资源
- D 编程 - 讨论
D 编程 - 构造函数和析构函数
类构造器
类构造函数是类的特殊成员函数,每当我们创建该类的新对象时都会执行该函数。
构造函数与类的名称完全相同,并且根本没有任何返回类型,甚至没有 void。构造函数对于设置某些成员变量的初始值非常有用。
以下示例解释了构造函数的概念 -
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()); }
当上面的代码被编译并执行时,它会产生以下结果 -
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; } // 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()); }
当上面的代码被编译并执行时,它会产生以下结果 -
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; } // Main function for the program void main( ) { Line line = new Line(); // set line length line.setLength(6.0); writeln("Length of line : ", line.getLength()); }
当上面的代码被编译并执行时,它会产生以下结果 -
Object is being created Length of line : 6 Object is being deleted
d_programming_classes_objects.htm