构造函数
构造函数是一个类对象在被创建时自动调用的函数,通过创建一个和类名相同的函数来声明
- 以上代码创建了 Myclass 类一个无参数的构造函数(默认构造函数)
- 构造函数与包含它的类同名,且默认的构造函数没有参数
- 不显式声明的情况下,默认将定义为 internal 类型的方法,将无法在派生类中调用
- 一个类必须拥有一个默认的构造函数,如未定义,将隐式定义
- 可以使用私有的构造函数,但将无法使用该构造函数创建实例对象
- 可提供的构造函数数量无上限
- 可使用构造函数初始化器(constructor initializer)在派生类的构造函数定义中指定所使用的基类构造函数
如使用 MyDeivedClass a = new MyDeivedClass( ); 以上代码构造函数的执行顺序为:
- 先执行System.Object.Object( ) 构造函数
- 再执行MyBaseClass.MyBaseClass(int i) 构造函数
- 执行MyDeivedClass.MyDeivedClass( ) 构造函数
C++中的构造函数
在C++中,我们还可以使用 : 运算符来定义一个构造函数,具体代码如下
struct node{
int u, v;
node(int x, int y) : u(x), v(y){}; // 表示使用 x 初始化 u,使用 y 初始化 w
// 与以下定义等价
node(int x, int y)
{
u = x;
v = y;
}
}
析构函数
析构函数是一个类对象在被回收时被自动调用的函数,通过创建一个
带有 ~ 前缀的类名来声明
- 以上代码创建了 Myclass 类的析构函数
- 调用类的析构函数后,还会隐式调用其基类的析构函数,即会一直调用到 System.Object 的析构函数(该技术可以保证 System.Object 中的 Finalize( ) 函数一定会被调用)