Is anyone aware of a language feature or technique in C++ to prevent a child class from over riding a particular method in the parent class?
class Base { public: bool someGuaranteedResult() { return true; } }; class Child : public Base { public: bool someGuaranteedResult() { return false; /* Haha I broke things! */ } };
Even though it’s not virtual, this is still allowed (at least in the Metrowerks compiler I’m using), all you get is a compile time warning about hiding non-virtual inherited function X.
A couple of ideas:
Other than that, I’m not aware of a language feature that will lock away your function in such a way which prevents it from being overloaded and still able to be invoked through a pointer/reference to the child class.
Good luck!