Tag: 指针预览模式: 普通 | 列表
近日,在网上看到有网友问曰:如何确定一个对象指针是否可用?也就是说,如何确定一个对象指针是否指向一个真正可用的对象实例?其实这本不应该成为一个问题。因为对于程序设计者来说,他应该能够控制自己的程序不去访问一个无效的指针,因为所有的对象实例的创建和销毁都在他控制之下。并且即便没有一个直接的办法来判断对象指针是否可用,也可以通过其他间接的途径(比如使用一些标识等)来做到这一点(比如当我们销毁一个对象实例后,我们将对象指针的指置为nil)。但是假如我们抛开以上所说的这两点不谈,单单来研究在Delphi中,究竟有没有办法来判断一个对象指针是否可用,那情况会如何呢?

在Object Pascal中,一个类可以有两种类型的方法,一种称为对象方法(Object Method),另一种是类方法(Class Method)。所谓对象方法,指的是方法的定义是针对对象(或称实例)的,因此调用该方法需要基于某个对象(或称实例),比如类的析构函数Destroy就是一个对象方法(其实我们经常用到的绝大部分方法都是对象方法)。而类方法,指的是方法的定义是基于一类对象而言,因此调用该方法不需要基于特定的对象实例,比如类的构造函数Create就是如此。这一点,对我们有些启发。判断一个对象指针是否可用,似乎可以通过以下步骤来完成。首先,我们可以判断该对象指针是否是nil,如果是,那么大功告成,确定不可用无疑;如果否,那么尝试执行该对象的某个对象方法,看看是否出现诸如无效内存访问等的异常,由此来判断该对象是否可用。用如下代码来验证我们的想法:

var

查看更多...

Tags: 指针

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 776