C++抽象基类和纯虚成员函数
C++抽象基类和纯虚成员函数
公共接口是指一系列成员函数的集合,支持该接口的类必须以合适的方式重新定义这些成员函数,否则就无法创建对象。C++ 中可以通过抽象基类来实现公共接口,为了介绍抽象基类,我们需要先来了解一下纯虚成员函数。
纯虚成员函数的声明语法如下:
virtual 函数返回类型 函数名 (函数参数) = 0;
纯虚成员函数没有函数体,只有函数声明,在纯虚函数声明结尾加上“=0”表明此函数为纯虚成员函数。
包含纯虚成员函数的类即为抽象基类,之所以说它抽象,那是因为它无法实例化,也即无法用于创建对象。
#include<iostream>
using namespace std;
class base
{
public :
base(){x = 0;}
base(int a){x = a;}
virtual void display() = 0;
int getx(){return x;}
private:
int x;
};
class derived1 : public base
{
public:
derived1(int a){ y = a;}
private:
int y;
};
class derived2 : public base
{
public:
derived2(int a, int b):base(a){ z = b;}
void display()
{
cout << "Pure Virtual func" << endl;
cout<<getx()<<" "<<z<<endl;
}
private:
int z;
};
int main()
{
//base b; //compile error
//derived1 d1(5); //compile error
derived2 d2(5,6);
d2.display();
return 0;
}

小结
抽象基类可以用于实现公共接口,在抽象基类中声明的纯虚成员函数,派生类如果想要能够创建对象,则必须全部重新定义这些纯虚成员函数并实现函数。
本文介绍了C++中的抽象基类和纯虚成员函数,它们是实现公共接口的关键。抽象基类包含纯虚函数,无法实例化,而派生类必须重新定义所有纯虚函数才能创建对象。示例代码展示了如何使用抽象基类定义和派生类实现纯虚函数。
909

被折叠的 条评论
为什么被折叠?



