c++接口

在C++中,接口(Interface)是一种抽象的概念,用于定义类或模块对外提供的操作、方法或功能的集合。接口规定了类或模块的公共契约,描述了其可用的方法和属性,而不涉及具体的实现细节。

在C++中,接口可以通过抽象类(Abstract Class)和纯虚函数(Pure Virtual Function)来实现。

抽象类是一个包含至少一个纯虚函数的类,无法直接实例化,只能作为基类使用。抽象类用于定义接口,规定了派生类必须实现的方法。派生类必须实现基类的纯虚函数才能被实例化。抽象类中可以包含非纯虚函数和成员变量。

以下是一个抽象类的示例:

class AbstractShape {
public:
    virtual void draw() = 0;   // 纯虚函数,定义了接口
    virtual double area() = 0; // 纯虚函数,定义了接口

    void printName() {
        std::cout << "Abstract Shape" << std::endl;
    }
};

class Circle : public AbstractShape {
public:
    void draw() override {
        std::cout << "Drawing a circle." << std::endl;
    }

    double area() override {
        // 计算圆的面积
    }
};

class Rectangle : public AbstractShape {
public:
    void draw() override {
        std::cout << "Drawing a rectangle." << std::endl;
    }

    double area() override {
        // 计算矩形的面积
    }
};

在上述示例中,`AbstractShape` 是一个抽象类,包含了纯虚函数 `draw()` 和 `area()`,定义了图形类的接口。派生类 `Circle` 和 `Rectangle` 必须实现这两个纯虚函数才能被实例化。

纯虚函数通过在声明末尾添加 `= 0` 来标记,它们没有默认的实现,只提供了接口的定义。任何包含纯虚函数的类都被认为是抽象类,不能直接实例化,只能作为基类使用。

接口的使用可以实现多态性,使得不同的类可以使用相同的接口来进行操作,增强了代码的灵活性、可扩展性和可维护性。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值