
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
Cleaning up is my least favorite activity. Were my living room an IDL object I'm sure it'd be full of dangling pointer references. Here's a question regarding objects' Cleanup methods and inheritance. When an object inherits another object, methods can be overridden. So what happens to the CleanUp method? It is special. If my House object inherits the Living_Room and Bathroom object classes, will a call to HOUSE::CleanUp also call Living_Room::CleanUp and Bathroom::Cleanup when obj_destroy, self is called? Let me put that another way. Suppose an object class, A, has pointer fields. Unless someone tells me otherwise, I assume it's a good idea two specifically free the pointers in that object's Cleanup routine. Now, suppose another object class, B, inherits A. B has its own pointers to clean up as well, so I write that into its cleanup routine. It is sufficient to write the Cleanup methods like this? pro Bobj::CleanUp ptr_free, self.Bpointer obj_destroy, self end pro Aobj::CleanUp ptr_free, self.Apointer obj_destroy, self end Will Bobj::CleanUp's call to "obj_destroy, self" also call Aobj::Cleanup so that self.Apointer can be freed as the object is destroyed? Also, does the destruction of an object that contains a pointer field also inherently free the pointer? or is it necessary to specifically ask for that in the Cleanup? Now if I could only get the House::TakeOutTheTrash method to work reliably my wife would be thrilled. M. Katz
| <-- __Chronological__ --> | <-- __Thread__ --> |