Bharath <tiromarch08@[EMAIL PROTECTED]
> writes:
> I was trying the below example for which I have a doubt. My doubt is
> that why is virtual needed for function "dummy" in class CBase which
> makes program compile?
One of C++'s mottos is: don't pay for what you don't need.
There is a mechanism that gives us RTTI (including dynamic_cast) for
free (well almost) provided base cl***** have >=1 virtual member
function.
Since virtual member functions are used often, and RTTI rarely - and
even more rarely with cl***** that don't involve polymorphism -, this
tradeoff seems to be reasonable.
> Secondly, As per my current understanding of dynamic cast, pba is a
> object of CDerived which RTTI knows and hence cast should be
> successful.
First, pba is only a pointer; it just points at a CDerived object.
Second, no, the cast shouldn't suceed, because CBase doesn't have a
virtual member function.
--
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|