On 24 Nov 2011, at 23:00, Luiz Americo Pereira Camara wrote:

> On 24/11/2011 08:02, Jonas Maebe wrote:
>> 
>> On 24 Nov 2011, at 02:58, Luiz Americo Pereira Camara wrote:
>> 
>>> On 23/11/2011 18:48, Jesus Reyes wrote:
>>>> where I would expect:
>>>> cls class is TFoo
>>>> TObj.create
>>>> TFoo.create
>>> 
>>> I also hit this problem recently
>>> 
>>> Found that this is one limitation of fpc. Under newer delphi it's possible 
>>> to get the expected behavior without forcing programmer to create a virtual 
>>> constructor by using the new RTTI
>> 
>> I find it very hard to believe that the behaviour of existing code like that 
>> would suddenly change (and hence potentially break programs) simply because 
>> extra RTTI is added.
> 
> It does not change.

In that case, you did not hit the same problem as the original poster (your "I 
also hit this problem recently" is what triggered my response). His problem was 
that if you call a non-virtual constructor on a class reference variable, that 
the constructor is determined based on the static type of the class reference 
rather than on the dynamic type.

> The task is accomplished by other means
> 
> See 
> http://code.google.com/p/emballo/source/browse/trunk/Src/Emballo.DI.Instantiator.pas#152

That's indeed a completely different technique to dynamically instantiate 
classes (and if you don't really need that kind of flexibility, I would 
recommend virtual constructors instead since they're much simpler and faster).


Jonas_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to