From: paradox AT direct DOT ca (Wesley Terpstra) Newsgroups: comp.os.msdos.djgpp Subject: A pointer of variable type - is it possible? Date: Thu, 03 Oct 1996 08:45:36 GMT Organization: Canada Internet Direct, Inc. Lines: 37 Message-ID: <325379bb.732349@news.direct.ca> NNTP-Posting-Host: nan-as-01a04.direct.ca To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp I recently ran into a scenario where I need a pointer of a variable type. The case is this: I am writing a 3d library with c++ classes. The objects created by the 3d library have children, siblings, and parents. (Ie objects connected to objects and objects floating around in a universe etc) Now, this all works great except that I need to be able to have the 3d library "connect" another class to the existing 3d object class. You see, the 3d object only has stuff pertenant to caluclating effects in the 3d world (ie: mass, moment of inertia, velocity, acceleration, angular acceleration, points, lnes, polys, textures, etc). I also need to add the ability for 3d objects to have a dynamic section. This will let spaceships have data members like weapon_power, armor_power, etc. and let stars have stuff like radiation_output, percentage_chance_of_flare, etc. I considered using a signature like: signatue object_data_ptr { void *object_data; const char *identifier; void load(DB *); void save(DB *); }; Placing a signature like that in the 3d object class would allow me to read the object's non-3d data, etc from object_data (assuming I use the identifier string to determine what the class being abstracted was). However, signatures are NOT portable beyond GCC and I am looking for a more elegant solution than taking pointers to functions and using them to save/load. This is partly because comparing an identifier string against a list of known objects limits me to only objects which I specifically add in some strange table and it would also incure alot of overhead. I have heard about something called polymorphic classes. Would this be able to give me the power I need? I also noticed an operator called typeof() could this be used to make my local information portable, yet fast? If you know a way that I could do this, please tell me! :)