C++学习, 接口
接口描述了类的行为和功能,不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。
类中至少有一个函数被声明为纯虚函数,这个类就是抽象类,纯虚函数声明中使用 "= 0" 指定。
class Box
 {
    public:
       // 纯虚函数
       virtual double getVolume() = 0;
    private:
       double length;      // 长度
       double breadth;     // 宽度
       double height;      // 高度
 };
抽象基类是一个至少包含一个纯虚函数的类。由于它至少包含一个纯虚函数,因此它不能被实例化。抽象基类通常用作接口,定义了一组必须由派生类实现的函数。
抽象基类和纯虚函数示例:
<iostream>    
 // 定义一个接口(通过抽象基类)  
 class Shape {  
 public:  
     // 纯虚函数,要求派生类必须实现  
     virtual void draw() const = 0;  
   
     // 虚析构函数,基类指针删除派生类对象时能够正确调用派生类的析构函数  
     virtual ~Shape() {}  
 };  
   
 // 派生类实现接口  
 class Circle : public Shape {  
 public:  
     void draw() const override {  
         std::cout << "Drawing Circle" << std::endl;  
     }  
 };  
   
 class Rectangle : public Shape {  
 public:  
     void draw() const override {  
         std::cout << "Drawing Rectangle" << std::endl;  
     }  
 };  
   
 // 使用接口  
 void drawShape(const Shape& shape) {  
     shape.draw();  
 }  
   
 int main() {  
     Circle circle;  
     Rectangle rectangle;  
   
     drawShape(circle);  // 输出: Drawing Circle  
     drawShape(rectangle); // 输出: Drawing Rectangle  
   
     return 0;  
 }
