I'm surprised I haven't encountered this yet (or perhaps I have but somehow didn't notice):
Prints out:Code:#include <iostream> #include <vector> class Base { public: virtual bool Is_Mouse_Over() const = 0; }; class A : public Base { public: virtual bool Is_Mouse_Over() const { std::cout << "A::Is_Mouse_Over" << std::endl; return true; } }; class B : public Base { private: virtual bool Is_Mouse_Over() const { std::cout << "B::Is_Mouse_Over" << std::endl; return true; } }; int main() { std::vector<Base*> objects; objects.push_back(new A()); objects.push_back(new B()); objects[0]->Is_Mouse_Over(); objects[1]->Is_Mouse_Over(); return 0; }
Doesn't this violate the private access modifier somehow?A::Is_Mouse_Over
B::Is_Mouse_Over
Cheers.




Reply With Quote