全面剖析C语言编程的精髓是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1299个文字,预计阅读时间需要6分钟。
结构函数用于解析结构的实例。注意:不能在结构中定义结构函数。只能对类使用结构函数。一个类只能有一个结构函数。无法继承或重载结构函数。无法调用结构函数。它们是自动的。
析构函数用于析构类的实例。
备注
不能在结构中定义析构函数。只能对类使用析构函数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
无法调用析构函数。它们是被自动调用的。
析构函数既没有修饰符,也没有参数。
例如,下面是类 Car 的析构函数的声明:
class Car { ~Car() // destructor { // cleanup statements... } }
该析构函数隐式地对对象的基类调用 Finalize。这样,前面的析构函数代码被隐式地转换为以下代码:
protected override void Finalize() { try { // Cleanup statements... } finally { base.Finalize(); } }
这意味着对继承链中的所有实例递归地调用 Finalize 方法(从派生程度最大的到派生程度最小的)。
注意
不应使用空析构函数。如果类包含析构函数,Finalize 队列中则会创建一个项。调用析构函数时,将调用垃圾回收器来处理该队列。如果析构函数为空,只会导致不必要的性能损失。
程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。
本文共计1299个文字,预计阅读时间需要6分钟。
结构函数用于解析结构的实例。注意:不能在结构中定义结构函数。只能对类使用结构函数。一个类只能有一个结构函数。无法继承或重载结构函数。无法调用结构函数。它们是自动的。
析构函数用于析构类的实例。
备注
不能在结构中定义析构函数。只能对类使用析构函数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
无法调用析构函数。它们是被自动调用的。
析构函数既没有修饰符,也没有参数。
例如,下面是类 Car 的析构函数的声明:
class Car { ~Car() // destructor { // cleanup statements... } }
该析构函数隐式地对对象的基类调用 Finalize。这样,前面的析构函数代码被隐式地转换为以下代码:
protected override void Finalize() { try { // Cleanup statements... } finally { base.Finalize(); } }
这意味着对继承链中的所有实例递归地调用 Finalize 方法(从派生程度最大的到派生程度最小的)。
注意
不应使用空析构函数。如果类包含析构函数,Finalize 队列中则会创建一个项。调用析构函数时,将调用垃圾回收器来处理该队列。如果析构函数为空,只会导致不必要的性能损失。
程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。如果垃圾回收器认为某个对象符合析构,则调用析构函数(如果有)并回收用来存储此对象的内存。程序退出时也会调用析构函数。

