我自己总结的如何调用抽象类内的函数接口

第一:通过类的指针无论是子类还是父类都可以调用抽象类内的正常函数接口,注意只能调用正常的,如果是虚函数接口是不可以调用的,下面是程序例子:
我自己总结的如何调用抽象类内的函数接口
像如图上所示当用指针访问抽象父类的正常函数的时候,程序是没有问题的。当这个函数我写成虚函数以后:我自己总结的如何调用抽象类内的函数接口
所以说无法通过指针调用抽象类内的虚函数,会出现这个访问冲突问题。

第二:可以通过子类来调用父类的函数接口,当然子类必须对父类的纯虚函数进行了定义来确保子类不是抽象类,要注意一点子类对父类的定义必须完全按照父类纯虚函数的返回值跟形参进行定义,否则子类仍然会被认为是抽象类,那个纯虚函数的定义会被认为是普通的函数重载,下面是程序示例:
我自己总结的如何调用抽象类内的函数接口
可以看到当子类不再是抽象类的时候,给子类实例化然后利用子类对象去调用抽象类内的哪怕是虚函数都不会出现问题,这个方法也是C++官方给出的方法。
最后我再说一下,抽象类尽量不要直接用,哪怕是第一种指针的方法也尽量不要用,还是尽量用第二种方法去调用抽象类中的函数接口才最为稳妥。