> In some way I think this is legitimate in that, IIRC, a pointer to an > instance of a subclass can be used as a pointer to an instance of the > parent class. > > So the purpose of this posting is to ask if I am correct that this > should be expected to work or should I expect that on some exotic > compilers this will suddenly blow up on me?
(Assuming this was a pure C++ question...) I think that direction of casting is okay, and part of the point of C++. You can pass a BigStrongMan to a function that only asks for a Man. Effective C++ item 39 warns of the dangers of casting code the other way when you think you know what you are doing. E.g. You have an Man pointer, but know it is really a pointer to the derived BigStrongMan class, so you cast it to BigStrongMan* and use it as such. Item 14 warns to make sure you destructors are virtual if you will be deleting an instance of BigStrongMan with a Man* pointer. (It is fine to do this, just make sure the destructors are virtual, so that BigStrongMan's destructor can be called.) Darren -- Darren Cook, Software Researcher/Developer http://dcook.org/work/ (About me and my work) http://dcook.org/blogs.html (My blogs and articles) _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel