C++教程-C++中的接口(抽象类)
C++ 中的接口(抽象类)
抽象类是在 C++ 中实现抽象的一种方式。在 C++ 中,抽象是隐藏内部细节,只展示功能的过程。可以通过两种方式实现抽象:
- 抽象类(Abstract Class): 抽象类和接口(Interface)都可以拥有抽象方法,这些抽象方法对于实现抽象是必要的。
- 接口(Interface): 接口是一个抽象的类,其中所有的方法都是纯虚函数。在C++中,接口是通过使用抽象类来实现的,其中所有的方法都是纯虚函数,没有成员变量或实现代码。
通过使用抽象类和接口,可以实现C++中的抽象概念,隐藏内部细节,仅展示功能。
C++抽象类
在C++中,通过将至少一个函数声明为纯虚函数(pure virtual function),可以将类定义为抽象类。纯虚函数的声明中使用 "= 0" 进行标识。派生类必须提供纯虚函数的实现。
让我们来看一个在C++中的抽象类示例,其中包含一个抽象方法draw()。该方法的实现由派生类Rectangle和Circle提供,两个类具有不同的实现。
#include <iostream>
using namespace std;
class Shape
{
public:
virtual void draw() = 0;
};
class Rectangle : public Shape
{
public:
void draw()
{
cout << "drawing rectangle..." << endl;
}
};
class Circle : public Shape
{
public:
void draw()
{
cout << "drawing circle..." << endl;
}
};
int main()
{
Rectangle rec;
Circle cir;
rec.draw();
cir.draw();
return 0;
}
输出:
drawing rectangle...
drawing circle...