48继承与派生

简介: 48继承与派生

C++入门——60s从0到1

继承与派生

 

C++中的继承与派生是面向对象编程的两个核心概念,它们允许程序员创建新的类(派生类)基于已有的类(基类),从而实现代码的重用和扩展。

 

继承

 

是指一个类(派生类或子类)继承另一个类(基类或父类)的属性和行为。这意味着派生类会获得基类的所有公有(public)和保护(protected)成员(包括数据成员和成员函数)。派生类可以添加新的成员,也可以重写或扩展基类的成员。

 

派生

 

是指通过继承创建新类的过程。派生类继承了基类的所有公有和保护成员,同时还可以添加新的成员或重写基类的成员。

 

继承的种类

 

C++支持三种继承方式:

 

1.公有继承(Public Inheritance):基类的公有成员和保护成员在派生类中保持相同的访问权限,而基类的私有成员在派生类中是不可访问的。

 

2.保护继承(Protected Inheritance):基类的公有成员和保护成员在派生类中变为保护成员,而基类的私有成员在派生类中是不可访问的。

 

3.私有继承(Private Inheritance):基类的公有成员和保护成员在派生类中变为私有成员,而基类的私有成员在派生类中是不可访问的。

 

继承与派生的特点

 

- 代码重用:通过继承,派生类可以重用基类的代码,避免了代码重复。

- 扩展性:派生类可以在继承基类的基础上添加新的功能或修改已有功能。

- 多态性:通过继承和虚函数,可以实现运行时多态,即根据对象的实际类型调用相应的成员函数。

 

示例

 

下面是一个简单的C++继承与派生的示例:

 

#include <iostream>
 
// 基类
class Shape {
public:
    void draw() {
        std::cout << "Drawing a shape..." << std::endl;
    }
};
 
// 派生类
class Circle : public Shape {
public:
    void draw() override {  // 重写基类的draw方法
        std::cout << "Drawing a circle..." << std::endl;
    }
};
 
int main() {
    Shape* shapePtr = new Circle();  // 向上转型
    shapePtr->draw();  // 调用Circle类的draw方法,输出"Drawing a circle..."
    delete shapePtr;
    return 0;
}
```

 

在这个示例中,`Circle` 类继承自 `Shape` 类,并重写了 `draw` 方法。在 `main` 函数中,我们创建了一个 `Circle` 对象,并将其指针赋给了一个 `Shape` 类型的指针 `shapePtr`。由于 `Circle` 是 `Shape` 的派生类,因此这种转换是合法的(向上转型)。当我们调用 `shapePtr->draw()` 时,实际上调用的是 `Circle` 类的 `draw` 方法,而不是 `Shape` 类的。这就是多态性的一个例子。

目录
相关文章
|
8月前
|
程序员 C++
28.【C++ 继承与派生 (详解)】(一)
28.【C++ 继承与派生 (详解)】
56 0
|
8月前
|
C++
28.【C++ 继承与派生 (详解)】(二)
28.【C++ 继承与派生 (详解)】
33 0
|
4天前
|
安全 Java 编译器
C++:继承与派生
C++:继承与派生
|
4天前
|
存储 编译器 C++
C++中的继承
C++中的继承
11 0
|
4天前
|
C++
【C++】——继承和派生
【C++】——继承和派生
42 1
|
10月前
|
C# C++
C++继承与派生
C++继承与派生
|
5月前
|
数据安全/隐私保护 C++
C++ 类的继承与派生
C++ 类的继承与派生
46 0
|
9月前
|
C++
C++中的继承和派生
C++ 中的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。 继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A,那么 B 就拥有 A 的成员变量和成员函数。 在C++中,派生(Derive)和继承是一个概念,只是站的角度不同。继承是儿子接收父亲的产业,派生是父亲把产业传承给儿子。 被继承的类称为父类或基类,继承的类称为子类或派生类。“子类”和“父类”通常放在一起称呼,“基类”和“派生类”通常放在一起称呼。 派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。
62 0
|
11月前
继承类的方法
继承类的方法
86 0
继承和派生
🐰继承和派生的概念 🐰派生类的声明 🐰派生类的构成 🌸1.从基类接受成员 🌸2.调整从基类接受的成员 🌸3.增加新成员 🐰派生类中基类成员的访问属性 🌸公用继承: 🌸私有继承: 🌸受保护的继承: 🐰总结