- D 编程基础
- D 编程 - 首页
- D 编程 - 概述
- D 编程 - 环境配置
- D 编程 - 基本语法
- D 编程 - 变量
- D 编程 - 数据类型
- D 编程 - 枚举
- D 编程 - 字面量
- D 编程 - 运算符
- D 编程 - 循环
- D 编程 - 条件语句
- D 编程 - 函数
- D 编程 - 字符
- D 编程 - 字符串
- D 编程 - 数组
- D 编程 - 关联数组
- D 编程 - 指针
- D 编程 - 元组
- D 编程 - 结构体
- D 编程 - 联合体
- D 编程 - 范围
- D 编程 - 别名
- D 编程 - Mixin
- 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
类析构函数
**析构函数**是类的特殊成员函数,每当其类的对象超出范围或每当将delete表达式应用于指向该类对象的指针时都会执行。
析构函数的名称与类名完全相同,前面加一个波浪号 (~)。它既不能返回值,也不能接受任何参数。析构函数对于在程序退出之前释放资源(例如关闭文件、释放内存等)非常有用。
以下示例解释了析构函数的概念:
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
广告