本文主要是介绍虚函数_纯虚函数_抽象类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、只要含有纯虚函数的类就是抽象类,不能实例化对象;
2、关于多态,简而言之,就是用父类类型的指针指向其子类实例,然后通过父类的指针调用实际子类的成员函数。
※需要和虚函数表结合理解(参考文章:C++进阶之虚函数表)
例程:
#include <iostream>using namespace std;class A // 抽象类
{
public:virtual ~A(){};virtual void out1() = 0; // 由子类实现virtual void out2() // 默认实现,子类可以重写{cout << "A(out2)" << endl;}void out3() // 强制实现{cout << "A(out3)" << endl;}
};class B : public A
{
public:B(){};~B(){};void out1(){cout << "B(out1)" << endl;}void out2(){cout << "B(out2)" << endl;}void out3(){cout << "B(out3)" << endl;}private:};int main()
{//A atest; // 编译报错//atest.out1();A *ab = new B;ab->out1();ab->out2();ab->out3();cout << "*************" << endl;B *bb = new B;bb->out1();bb->out2();bb->out3();delete ab;delete bb;system("pause");return 0;
}
执行结果:
这篇关于虚函数_纯虚函数_抽象类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!