当父类中声明某个函数为虚函数,并且子类重载了这个虚函数以后,用父类对象的指针可以调用子类的相应函数,但前提是该指针指向的对象是子类的对象,否则没有意义。
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();
}
本文探讨了如何在C++中通过子类重载父类的虚函数实现多态,强调了构造顺序和父类指针调用子类方法的前提。实例演示了如何使用父类指针调用子类特有的行为。
&spm=1001.2101.3001.5002&articleId=111278615&d=1&t=3&u=8265fcea874342e39cbb5197a809c93a)
6207





