> 教育经验 > 多态c++概念

多态c++概念

多态c++概念

C++中类的继承中有多态性的概念,所谓的多态就是在类里使用虚函数后,用父类作为对象指针,来正确的调用不同子类或父类来作为相应虚函数。虚基类实际就是继承时使用virtual关键字来定义,为的是让在多重继承时遇到相同的基类时只保留一份,以确定其使用那个类。

例子定义了四个类A、B、C、D,其中B、C继承了A,而D继承了B、C。然后我们用A类,定义了四个指针分别指向不同的对象,这时指针根据不同的类对象正确输出,这就是所说的多态性。

倘若不使用虚函数virtual来实现多态性,那么由于指针仅是A类,所以只能打印出A.Show(),而不能输出子类的函数。

另外还需要注意的是,该例还使用了虚基类A,子类D继承B、C,由于B、C都继承A类,基类A在派生类D看来是两个基类,会无法确定基类。因此继承时使用了virtual public A表示为虚基类。这样就不会因为B、C有共同的父类造成冲突。