当父类中声明某个函数为虚函数,并且子类重载了这个虚函数以后,用父类对象的指针可以调用子类的相应函数,但前提是该指针指向的对象是子类的对象,否则没有意义。
1.新建一个子类对象时,它首先执行它父类的构造方法然后再执行子类的构造方法。
2.我们new一个子类对象赋给父类(父类的引用指向了子类的对象,也就是说java里说的多态,),父类对象不可以调用子类的方法,但如果子类重写了父类的某个方法,则此时父类调用的是子类方法的内容。
class A
{
public:
virtual int a();
}
class B:A
{
int a()
{
printf("");
}
}
//多态
class C
{
A* m_pA;
m_pA = new B();
//调用B类的方法
m_pA-> a();
}