mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 11:09:19 +02:00
* removed and replaced by other files
This commit is contained in:
parent
1cd2d7afdd
commit
463476932c
@ -1,228 +0,0 @@
|
|||||||
|
|
||||||
{$mode objfpc}
|
|
||||||
|
|
||||||
type
|
|
||||||
{ object with vmt }
|
|
||||||
pvmtobject = ^tvmtobject;
|
|
||||||
tvmtobject = object
|
|
||||||
constructor constructor_none;
|
|
||||||
destructor destructor_none;
|
|
||||||
procedure method_virtual_none; virtual;
|
|
||||||
procedure method_static_none; static;
|
|
||||||
procedure method_none;
|
|
||||||
procedure method_virtual_1; virtual;
|
|
||||||
end;
|
|
||||||
|
|
||||||
pheritedvmtobject = ^theritedvmtobject;
|
|
||||||
theritedvmtobject = object(tvmtobject)
|
|
||||||
constructor constructor_none;
|
|
||||||
destructor destructor_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ object without vmt }
|
|
||||||
pnovmtobject = ^tnovmtobject;
|
|
||||||
tnovmtobject = object
|
|
||||||
procedure method_none;
|
|
||||||
procedure method_static_none; static;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
tsampleclass = class
|
|
||||||
constructor create;
|
|
||||||
destructor destroy;
|
|
||||||
constructor create_second;
|
|
||||||
destructor destroy_second;
|
|
||||||
procedure method_none;
|
|
||||||
class procedure class_method_none;
|
|
||||||
class procedure class_method_none_1;
|
|
||||||
class constructor create_class;
|
|
||||||
class destructor destroy_class;
|
|
||||||
procedure method_virtual; virtual;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
theritedclass = class(tsampleclass)
|
|
||||||
constructor create;
|
|
||||||
destructor destroy;
|
|
||||||
procedure initialize; virtual;
|
|
||||||
procedure finalize; virtual;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tnovmtobject.method_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tnovmtobject.method_static_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
constructor tvmtobject.constructor_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tvmtobject.method_virtual_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure tvmtobject.method_virtual_1;
|
|
||||||
begin
|
|
||||||
method_virtual_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure tvmtobject.method_static_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure tvmtobject.method_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
destructor tvmtobject.destructor_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
constructor theritedvmtobject.constructor_none;
|
|
||||||
begin
|
|
||||||
inherited constructor_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor theritedvmtobject.destructor_none;
|
|
||||||
begin
|
|
||||||
inherited destructor_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{*******************************************************************************}
|
|
||||||
{ TSAMPLECLASS }
|
|
||||||
{*******************************************************************************}
|
|
||||||
constructor tsampleclass.create;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor tsampleclass.destroy;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor tsampleclass.create_second;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor tsampleclass.destroy_second;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tsampleclass.method_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure tsampleclass.method_virtual;
|
|
||||||
begin
|
|
||||||
{ methodpointer = nil }
|
|
||||||
class_method_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
class procedure tsampleclass.class_method_none;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
class procedure tsampleclass.class_method_none_1;
|
|
||||||
begin
|
|
||||||
{ methodpointer = nil }
|
|
||||||
class_method_none;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
class constructor tsampleclass.create_class;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
class destructor tsampleclass.destroy_class;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
{*******************************************************************************}
|
|
||||||
{ THERITEDCLASS }
|
|
||||||
{*******************************************************************************}
|
|
||||||
destructor theritedclass.destroy;
|
|
||||||
begin
|
|
||||||
{ generates typen in secondcalln }
|
|
||||||
inherited destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor theritedclass.create;
|
|
||||||
begin
|
|
||||||
{ generates typen in secondcalln }
|
|
||||||
inherited create;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure theritedclass.initialize;
|
|
||||||
begin
|
|
||||||
{ methodpointer = nil }
|
|
||||||
create;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure theritedclass.finalize;
|
|
||||||
begin
|
|
||||||
{ methodpointer = nil }
|
|
||||||
destroy;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
function getvmtobject : tvmtobject;
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
var
|
|
||||||
myvmtobject : tvmtobject;
|
|
||||||
var
|
|
||||||
sampleclass : tsampleclass;
|
|
||||||
begin
|
|
||||||
Write('typen call node...');
|
|
||||||
{****************************** STATIC CALLS ************************************}
|
|
||||||
{ tvmtobject.method_static_none;
|
|
||||||
tnovmtobject.method_static_none;}
|
|
||||||
|
|
||||||
{ methodpointer : LOC_REGISTER
|
|
||||||
missing methodpointer : LOC_REFERENCE
|
|
||||||
}
|
|
||||||
{sampleclass := tsampleclass.create;}
|
|
||||||
{!!! HOW TO DO A DIRECT CALL TO CLASS DESTRUCTOR/CONSTRUCTOR? }
|
|
||||||
tsampleclass.class_method_none;
|
|
||||||
sampleclass.class_method_none;
|
|
||||||
sampleclass.create_second;
|
|
||||||
sampleclass.destroy_second;
|
|
||||||
tsampleclass.destroy_class;
|
|
||||||
tsampleclass.create_class;
|
|
||||||
{ sampleclass.destroy;}
|
|
||||||
|
|
||||||
{****************************** CONSTRUCTORS/DESTRUCTORS ************************************}
|
|
||||||
|
|
||||||
|
|
||||||
{ OK - full test for instance method done.
|
|
||||||
methodpointer : LOC_REFERENCE}
|
|
||||||
myvmtobject.constructor_none;
|
|
||||||
myvmtobject.destructor_none;
|
|
||||||
myvmtobject.method_none;
|
|
||||||
{!!!!!!!!1missing : methodpointer : LOC_REGISTER
|
|
||||||
}
|
|
||||||
|
|
||||||
{****************************** VIRTUAL METHODS ************************************}
|
|
||||||
{ !!!!!!!HANDLE SEPARETELY SINCE ITS QUITE COMPLICATED!!!
|
|
||||||
myvmtobject.method_virtual_none;}
|
|
||||||
|
|
||||||
end.
|
|
||||||
|
|
||||||
{
|
|
||||||
$Log$
|
|
||||||
Revision 1.2 2002-04-10 19:23:31 carl
|
|
||||||
+ added direct destructor / constructor call
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user