c++的继承

继承的概念

继承可以理解为一种从一个已有的类派生出新的类的机制,派生的新类被称为子类或派生类,而被派生的原有类被称为基类或父类。在派生时,子类继承了基类的所有属性和方法,同时可以重新定义一些属性和方法。

继承的类型

C++中有以下几种继承类型:

公有继承

在这种继承方式中,基类的公有成员也会成为子类的公有成员,基类的保护成员也会成为子类的保护成员,而基类的私有成员是不能被子类访问的。

私有继承

在这种继承方式中,基类中的所有成员都会成为子类的私有成员,不管它们是公有的、保护的还是私有的。

保护继承

在这种继承方式中,基类的公有成员和保护成员都会成为子类的保护成员,而基类的私有成员是不能被子类访问的。

多重继承

在多重继承中,一个子类同时继承多个基类。C++允许多个基类以逗号分隔的方式出现在子类的继承列表中。

虚继承

在虚继承中,派生类只保留第一个基类的继承关系,其他基类的继承关系被抛弃,以避免存在多个基类之间的冲突。

继承的基本语法

在C++中,可以使用以下语法来定义一个继承:

class 派生类名 : 继承方式 基类名 {
  // 派生类成员的定义
};

例如,下面的代码演示了如何使用公有继承来创建一个圆形类,并从该类派生出一个立方体类:


#include <iostream>
#include <cmath>

using namespace std;

class Circle {
  protected:
    double radius;
  public:
    Circle(double r): radius(r) {}
    double area() { return pow(radius, 2) * M_PI; }
};

class Cube: public Circle {
  public:
    Cube(double r): Circle(r) {}
    double volume() { return area() * radius / 3; }
};

int main() {
  Cube c(5);
  cout << "Cube volume: " << c.volume() << endl;
  return 0;
}

在上面的代码中,Cube类通过公有继承自Circle类,从而拥有了Circle类中的属性和方法。我们在派生类中定义了一个额外的方法volume(),用于计算立方体的体积。在main()函数中,我们创建了一个Cube对象并打印出它的体积。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值