Nov 3, 2015 at 10:30pm Nov 3, 2015 at 10:30pm UTC
Hi everyone!
i have a question- when i write: Base* b=new Multiple(); b->print();
why does Base::print() activated, and not Multuple::print()?
print is virtual function..
thanks for help !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
class Base
{
public :
virtual void print(){}
};
class DerivedOne: virtual public Base
{
public :
void print() const {cout << "DerivedOne\n" ;}
};
class DerivedTwo :virtual public Base
{
public :
void print() const {cout << "DerivedTwo\n" ;}
};
class Multiple : public DerivedOne, public DerivedTwo
{
public :
void print() const {DerivedTwo :: print();}
void g(){cout<<"blabla" ;}
};
Last edited on Nov 3, 2015 at 10:31pm Nov 3, 2015 at 10:31pm UTC
Nov 4, 2015 at 4:09am Nov 4, 2015 at 4:09am UTC
thanks, but this code was written like this on purpose.
can you explain again why Base::print is called? even thogh print is virtual..?