C++ 单级继承

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 C++ 编程语言中演示单级继承(Single Level Inheritance)的概念。你将创建两个类,一个父类和一个子类,其中子类(派生类)将继承父类(基类或超类)的特性(属性和方法)。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/OOPGroup -.-> cpp/constructors("Constructors") cpp/OOPGroup -.-> cpp/inheritance("Inheritance") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/classes_objects -.-> lab-96223{{"C++ 单级继承"}} cpp/class_methods -.-> lab-96223{{"C++ 单级继承"}} cpp/constructors -.-> lab-96223{{"C++ 单级继承"}} cpp/inheritance -.-> lab-96223{{"C++ 单级继承"}} cpp/output -.-> lab-96223{{"C++ 单级继承"}} cpp/user_input -.-> lab-96223{{"C++ 单级继承"}} cpp/files -.-> lab-96223{{"C++ 单级继承"}} cpp/code_formatting -.-> lab-96223{{"C++ 单级继承"}} end

创建 main.cpp 文件

首先,使用以下命令在 ~/project 目录下创建一个 main.cpp 文件:

touch ~/project/main.cpp

编写代码

将以下代码复制并粘贴到你的 main.cpp 文件中:

#include <iostream>
// 包含所需的库

using namespace std;

// 声明一个名为 "Shape" 的父类(基类)
class Shape {
    public:
        float area(float l, float b) { // 计算形状面积的方法
            return (l * b);
        }

        float perimeter(float l, float b) { // 计算形状周长的方法
            return (2 * (l + b));
        }
};

// 声明一个名为 "Rectangle" 的子类(派生类),它继承自 Shape 类
class Rectangle: private Shape {
    private:
        float length,
        breadth;

    public:
        Rectangle(): length(0.0), breadth(0.0) {} // Rectangle 的默认构造函数

        void getDimensions() { // 从用户获取矩形尺寸的方法
            cout << "\n输入矩形的长度: ";
            cin >> length;

            cout << "\n输入矩形的宽度: ";
            cin >> breadth;
        }

        // 使用 Shape 类计算矩形周长的方法
        float perimeter() {
            // 调用 Shape 类的 perimeter() 方法并返回结果
            return Shape::perimeter(length, breadth);
        }

        // 使用 Shape 类计算矩形面积的方法
        float area() {
            // 调用 Shape 类的 area() 方法并返回结果
            return Shape::area(length, breadth);
        }
};

int main() {
    // 创建 Rectangle 类的对象
    Rectangle rect;

    // 欢迎信息
    cout << "\n\n欢迎来到单级继承程序!\n";

    // 给用户的信息
    cout << "\nRectangle 类继承自 Shape 类。\n\n";

    // 从用户获取矩形的尺寸
    rect.getDimensions();

    // 使用父类 Shape 计算矩形的周长并显示结果
    cout << "\n使用父类 Shape 计算的矩形周长: " << rect.perimeter() << "\n";

    // 使用父类 Shape 计算矩形的面积并显示结果
    cout << "使用父类 Shape 计算的矩形面积: " << rect.area() << "\n\n";

    return 0;
}

编译并运行代码

接下来,使用以下命令编译代码:

g++ main.cpp -o main && ./main

然后,使用以下命令运行代码:

./main

理解输出

运行程序后,你将看到以下输出:

欢迎来到单级继承程序!

Rectangle 类继承自 Shape 类。

输入矩形的长度: 5

输入矩形的宽度: 10

使用父类 Shape 计算的矩形周长: 30
使用父类 Shape 计算的矩形面积: 50

程序会提示用户输入矩形的长度和宽度。获取尺寸后,它会使用父类 Shape 中的 perimeter()area() 函数计算矩形的周长和面积。

总结

恭喜!你已经成功编写了一个演示单级继承概念的 C++ 程序。你可以尝试不同的形状,程序的输出将准确反映任何新派生类的计算结果。