Quote Originally Posted by Muthuveerappan View Post
Thanks Nuzzle, I suppose it is better to treat it as a feature of C++ since i am not fully aware of what goes behind the scene.
actually, there's not much happening "behind the scene" in this case; the C++ designers simply choosed to maintain access rules and polymorphic behavior rules as much orthogonal as possible. Once you have been granted access to a member ( a method, a variable, a type, a special member such as a constructor etc... ) then the rules involving the invocation of virtual functions apply indipendently of the specific way you accessed it.