ubuntu

Ubuntu C++如何实现继承与多态

小樊
58
2025-04-26 10:51:54
栏目: 编程语言

在C++中,继承和多态是面向对象编程的两个核心概念。继承允许一个类(子类)继承另一个类(父类)的属性和方法,而多态允许子类以不同的方式实现父类的方法。以下是在Ubuntu环境下使用C++实现继承和多态的基本步骤:

继承

  1. 定义基类
// BaseClass.h
#ifndef BASECLASS_H
#define BASECLASS_H

class BaseClass {
public:
    BaseClass() {}
    virtual ~BaseClass() {}

    virtual void display() const {
        std::cout << "Display from BaseClass" << std::endl;
    }
};

#endif // BASECLASS_H
  1. 定义派生类
// DerivedClass.h
#ifndef DERIVEDCLASS_H
#define DERIVEDCLASS_H

#include "BaseClass.h"

class DerivedClass : public BaseClass {
public:
    DerivedClass() {}
    ~DerivedClass() override {}

    void display() const override {
        std::cout << "Display from DerivedClass" << std::endl;
    }
};

#endif // DERIVEDCLASS_H

多态

使用基类的指针或引用调用派生类的方法。

// main.cpp
#include <iostream>
#include "BaseClass.h"
#include "DerivedClass.h"

int main() {
    BaseClass* basePtr;
    DerivedClass derivedObj;

    // 指向派生类对象
    basePtr = &derivedObj;

    // 调用派生类的display方法
    basePtr->display();  // 输出: Display from DerivedClass

    return 0;
}

编译和运行

在Ubuntu终端中,你可以使用g++编译器来编译和运行上述代码:

g++ -o polymorphism_example main.cpp BaseClass.cpp DerivedClass.cpp
./polymorphism_example

解释

  1. 基类BaseClass 是一个基类,包含一个虚函数 display
  2. 派生类DerivedClass 继承自 BaseClass,并重写了 display 方法。
  3. 多态:通过基类的指针 basePtr 调用 display 方法时,实际调用的是派生类 DerivedClassdisplay 方法。

注意事项

通过这种方式,你可以在Ubuntu环境下使用C++实现继承和多态。

0
看了该问题的人还看了