but I don't get your point about TList... it can be allocated just like the vector. or are you talking about adding the new instance to a global list or something?
Yep, basicly when you want to use that B3D thing were you add an instance of every object to the global list for that object.
(Dont missunderstand I dont use NEW in open code, I always have a create Function, and I have overridden all my "News" so that they dont except being called from anywhere accept their Create Function.
Thus I cannot do it the way you recomended. (Which is deliberate). The reason I did this was that originaly I had been doing it your way, but when I came to situations, were I didnt want (in this example), the three doubles to be created, but rather simply wanted the new Type to point to an already existing Instance, rather than create an Instane and the have it auto relesed then GC'ed.
Dont forget in Morbius' original example, "Linear" does exist, but it simply points to NULL, and so hasnt takenup any memory (yet) other than the pointer itself, whereas in your example, the Memory is auto allocated, and then possibly discarded)
Dont forget These comments are just thoretic discustion to you, and that Morbius could do a lot worse than following either of the two possibilities he his been given, by you and Wendel