[fpc-pascal] non-virtual class methods called from virtual regular method
Michael Van Canneyt
michael at freepascal.org
Thu Apr 29 13:10:50 CEST 2021
On Thu, 29 Apr 2021, LacaK via fpc-pascal wrote:
>
> Dňa 29.4.2021 o 9:26 Michael Van Canneyt via fpc-pascal napísal(a):
>>
>>
>> On Thu, 29 Apr 2021, LacaK via fpc-pascal wrote:
>>
>>> Hi *,
>>>
>>> consider the following example
>>>
>>> T1 = class
>>> class procedure CP1;
>>> procedure P1; virtual;
>>> end;
>>>
>>> T2 = class(T1)
>>> class procedure CP1;
>>> end;
>>>
>>> procedure T1.P1;
>>> begin
>>> CP1; // here is called allways T1.CP1, right?
>>> // if I want call T2.CP1 then class procedure CP1 must be also
>>> virtual, right?
>>
>> Yes
>>
>>> // so Self.CP1 does not take runtime type but is staticaly resolved
>>> at compile time to T1.CP1 ?
>>
>> Yes.
>
> This is bit counter-intuitive for me:
For me not, it's perfectly logical.
Michael.
More information about the fpc-pascal
mailing list