21xrx.com
2024-06-02 22:58:44 Sunday
登录
文章检索 我的文章 写文章
C++中的继承和接口
2023-07-12 09:41:15 深夜i     --     --
C++ 继承 接口 多态 虚函数

C++是一种强大的编程语言,支持多种编程范式,包括面向对象编程(OOP)。在OOP中,继承和接口是两个非常重要的概念,本文将介绍它们在C++中的使用。

继承

继承是OOP中的一种机制,它允许我们从已有的类派生出新的类,新的类会继承已有类的属性和方法。在C++中,继承分为三种类型:公有继承、保护继承和私有继承。

公有继承是指派生类可以访问基类的公有成员和保护成员,但不能访问基类的私有成员。保护继承是指派生类可以访问基类的公有成员和保护成员,但不能访问基类的私有成员。私有继承是指派生类不可直接访问基类的任何成员。

下面是一个例子,演示如何使用C++中的继承:


class Animal {

public:

  void eat()

    cout << "Animal is eating" << endl;

  

};

class Dog : public Animal {

public:

  void bark()

    cout << "Dog is barking" << endl;

  

};

int main() {

  Dog d;

  d.eat();  // Animal is eating

  d.bark();  // Dog is barking

  return 0;

}

上面的代码定义了一个Animal类,它有一个eat()方法。然后定义了一个Dog类,它继承了Animal类,并添加了一个bark()方法。在main()函数中,我们创建了一个Dog对象,并分别调用了它的eat()和bark()方法。

接口

接口是OOP中的另一个重要概念,它定义了一个类应该具有哪些方法,但并不提供实现。在C++中,接口可以通过纯虚函数来实现。纯虚函数是指在类中声明但没有实现的虚函数。任何类都可以继承一个或多个接口。

下面是一个例子,演示如何在C++中使用接口:


class Shape {

public:

  virtual double area() = 0;

};

class Rectangle : public Shape {

private:

  double width, height;

public:

  Rectangle(double w, double h)

    width = w;

    height = h;

  

  double area() {

    return width * height;

  }

};

int main() {

  Shape* s = new Rectangle(10, 20);

  cout << "Area: " << s->area() << endl;

  return 0;

}

上面的代码定义了一个Shape接口,它有一个纯虚函数area()。然后定义了一个Rectangle类,它继承了Shape接口,并实现了它的area()方法。在main()函数中,我们创建了一个Rectangle对象,并通过Shape指针调用了它的area()方法。

结论

继承和接口是OOP中的两个重要概念,它们可以让我们更好地组织和管理代码,提高代码的可维护性和可扩展性。在C++中,我们可以通过继承和纯虚函数来实现继承和接口的功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复