开发手册 欢迎您!
软件开发者资料库

C++ 接口(抽象类)

C++ 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。本文主要介绍C++ 接口(抽象类)。

接口与抽象类

C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。

如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的。在 C++ 语言中没有抽象类的概念,可通过纯虚函数来实现抽象类。纯虚函数是指只定义原型的成员函数,如果一个 C++ 类中存在纯虚函数便就成为了抽象类。

例如,

#include using namespace std;class Shape{public:    virtual double area() = 0;};class Rect : public Shape{    int ma;    int mb;public:    Rect(int a, int b)    {        ma = a;        mb = b;    }    double area()    {        return ma * mb;    }};class Circle : public Shape{    int mr;public:    Circle(int r)    {        mr = r;    }    double area()    {        return 3.14 * mr * mr;    }};void area(Shape* p){    double r = p->area();    cout << "r = " << r << endl;}int main(){    Rect rect(1, 5);    Circle circle(10);    area(&rect);    area(&circle);    return 0;}

注意:

1) “= 0”是用于告诉编译器当前是声明纯虚函数,因此不需要定义函数体。

2)抽象类用于描述现实世界中的抽象概念,抽象类只能被继承而不能创建对象。

3)在 C++ 中没有抽象类的概念,是通过纯虚函数来实现抽象类。

4)类中只存在纯虚函数的时候才能成为接口。

5)接口是一种特殊的抽象类。