c++ - Downcasting and Virtual Functions -


i asked question in interview , unsure of behaviour in following case :

class  {        virtual fun1(){...}       virtual fun2(){...} };  class b : public {        virtual fun1(){...}       virtual fun2(){...} }; 

now if,

a* aobj = new a; b* bobj = (b*) aobj; 

does bobj have access b's methods because of virtual keyword or not because it's pointing object of aobj ?

can me how downcasting affects access ?

assigning address of base-class object derived-class pointer undefined behavior. can happen: calling bobj's functions can invoke b's functions, can invoke a's functions, can crash program, or format hard drive. depend on compiler , optimization options.


Comments

Popular posts from this blog

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -

YouTubePlayerFragment cannot be cast to android.support.v4.app.Fragment -