class function 是什么意思?(50分)

  • 主题发起人 主题发起人 sunlj_cn
  • 开始时间 开始时间
S

sunlj_cn

Unregistered / Unconfirmed
GUEST, unregistred user!
再定义一个类中,有时用到class function这样的关键字来声明一个函数,class function代表什么意思?能不能说的详细点?
 
类函数
可以在类中没有数据的情况下使用,也可以定义在没有数据的类中
而不加Class 则不行
具体的可以看一下书
 

在方法前面加上class关键词,可以让这个方法和普通的函数和过程一样调用,并不需要实现这个方法所在的类。
注意:不要在class的方法以来于任何类实例的信息,否则编译器会报错。
 
就是可以直接 类名. 调用
 
A class method is a method (other than a constructor) that operates on classes instead of objects. The definition of a class method must begin with the reserved word class. For example,

type

TFigure = class
public
class function Supports(Operation: string): Boolean
virtual;
class procedure GetInfo(var Info: TFigureInfo)
virtual;
...
end;

The defining declaration of a class method must also begin with class. For example,

class procedure TFigure.GetInfo(var Info: TFigureInfo);

begin
...
end;

In the defining declaration of a class method, the identifier Self represents the class where the method is called (which could be a descendant of the class in which it is defined). If the method is called in the class C, then Self is of the type class of C. Thus you cannot use Self to access fields, properties, and normal (object) methods, but you can use it to call constructors and other class methods.
A class method can be called through a class reference or an object reference. When it is called through an object reference, the class of the object becomes the value of Self.
我英文不是很好,哈哈
 
我认为这个类就是一个包裹,它不能修改类中的数据,使用它也不用构造这个类,完全可以把它当作一个单独的函数,你可以看一下数据库类
 
是类函数,(class procedure 叫类方法);
也就是针对类写的函数。
用途:在对象为创建之前想要调用某些特殊处理的函数,就需要类函数来实现;
类函数的调用方式是通过类来调用,而不是通过对象来调用。
类函数很实用。
例如窗体的你可以写一个类方法:

class procedure TForm1.showForm1;
var
frm:Tform1;
begin
frm:=Tform1.Create(nil);
frm.ShowModal;
frm.Free;
end;

调用的时候这么调用就行了
Tform1.showForm1;
就省了重新申明变量,重新创建等等麻烦的步骤了,呵呵。
 
多人接受答案了。
 

Similar threads

后退
顶部