Object Pascal 对象中的方法可以定义为静态方法,如:TFoo = class
procedure IAmAStatic;
end;也可以定义像C++中的static函数类似的方法,如:TFoo = class
class funcation IAmLikeC() : Boolean;
end;请教:
1、两者有何区别?
2、如果第二种方法可以像C++中的static函数,那么就意味着可以不必实例化就可以调用,而第一种是否可以???
procedure IAmAStatic;
end;也可以定义像C++中的static函数类似的方法,如:TFoo = class
class funcation IAmLikeC() : Boolean;
end;请教:
1、两者有何区别?
2、如果第二种方法可以像C++中的static函数,那么就意味着可以不必实例化就可以调用,而第一种是否可以???
第一种必须进行实例化才能调用呀
delphi中的静态方法不要和c++中的混了,
不是一个概念
在delphi中
有
静态方法
动态方法
虚方法
消息处理方法
类方法
其中的类方法有点类似于c++的static方法,可以不建实例来调用
但也有不同
2、第二种方法像C++中的static函数,可以不必实例化就用,而第一种不可以,必须实例化
后才能调用。 注意:
delphi的class method 与 C++的Static method仅仅是像而已,但是不是完全相同。 delphi的class method:
隐含传入了类信息的指针
c++的static method:
是纯正的全局函数,没有任何隐含的参数。所以它可以作为windows的回调函数使用静态:在编译应用程序时,将方法的入口地址静态得与类绑定,
这个静态是与动态(dynamic)和虚拟(virtual)相对的。
动态方法和虚拟方法: 只能在运行时根据对象的具体类型决定方法的入口地址。