本文主要是介绍C++ - 纯虚函数与抽象类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 纯虚函数:没有函数体的虚函数
class A{private:int a;public:virtual void Print() = 0;//纯虚函数
}
- 抽象类:包含纯虚函数的类
- 只能作为基类来派生新类使用
- 不能创建抽象类的对象
- 抽象类的指针和引用 -> 由抽象类派生出来的类的对象
A a;//错,A 是抽象类,不能创建对象
A *pa;//ok,可以定义抽象类的指针和引用
pa = new A;//错误,A 是抽象类,不能创建对象
- 抽象类中
- 在成员函数内可以调用纯虚函数
- 在构造函数/析构函数 内部不能使用纯虚函数
- 如果一个类从抽象类派生而来
它必须实现了基类中的所有纯虚函数,才能成为非抽象类 - 举例
class A{public:virtual void f() = 0;void g(){ this->f(); }A(){}
};
class B:public A{public:void f(){ cout<<"B:f()"<<endl;}
};
int main(){B b;b.g();return 0;
}
作者:Mitchell
链接:https://www.jianshu.com/p/852e5bf33f4a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于C++ - 纯虚函数与抽象类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!