首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

问一个很Simple的有关问题,类是什么时候创建的

2012-03-09 
问一个很Simple的问题,类是什么时候创建的?//func.pas文件.....typeTfuncClassi:integerstr:Stringpriv

问一个很Simple的问题,类是什么时候创建的?
//func.pas文件
.....
type
      Tfunc   =   Class
          i:integer;
          str:String;
      private
          //
      public
          function   SayHello():boolean;
      end;

var
    func:   Tfunc;

implementation

......


最后在一个窗体里引用func.pas

procedure   TForm1.Button1Click(Sender:   TObject);
begin
    func.SayHello();
end;

-----------------------------------------
问题如下:func是什么时候创建的?应该在什么地方释放?用不用释放?


               


[解决办法]
找 func:=Tfunc.Create;这句代码。
[解决办法]
在引用func的单元里找找,应该有func := tfunc.create;
[解决办法]
如果整个项目里面都没有func: Tfunc;的创建语句,那么根本就是错误,不是提倡不提倡问题了
[解决办法]
func只是一个指向类实体的指针变量。只有创建一个Tfunc实例,然后赋给func,才能通过func进行访问,要不会出错的。

你搜索一下在那创建了,Search-> Find In Files ,输入 Tfunc.Create
[解决办法]
静态方法是c++的叫法,在d中因该对应的是类方法,就是:
static void method...
class procedure....
具体有没有动态属性或者方法我也不知道,这是我自己根据静态方法理解的,也不知道学名应该叫什么,就是和具体对象相关的那些变量,c中叫实例变量,c中规定静态方法不能访问实例变量,象你说得那些i,str什么的就是我理解的动态字段或者叫实例字段。
这种做法要根据实际来确定,静态方法也有它的好处,不管你创建了多少个对象,静态方法在内存中只有一个副本。而且静态方法不是通过实例访问的,是通过类访问的,func.sayhello()这种访问是怎么也说不通的。

热点排行