C++ 类继承示例:Base 和 Derive 类

本示例演示了 C++ 中类的继承,包括基类 Base 和派生类 Derive。代码展示了构造函数、虚函数、成员变量、访问控制以及对象创建和使用等概念。

#include <iostream>
using namespace std;

class Base {
public:
    Base(int m) { n = m++; }
    virtual void gl() {
        cout << "Base::g1()..." << n << endl;
        g4();
        // ... 其他代码 ...
    }
    void g4() { cout << "Base::g4()..." << n << endl; }
protected:
    int n;
};

class Derive : public Base {
public:
    Derive(int m) : Base(m) {  }
    void gl() override {
        cout << "Derive::g1()..." << n << endl;
        g4();
        // ... 其他代码 ...
    }
private:
    // ... 私有成员 ...
};

int main() {
    int j;
    Base Bobj(10);
    Derive Dobj(20);

    Bobj.gl();
    Dobj.gl();

    Base *bp = &Dobj;
    bp->gl();

    Base &bref = Dobj;
    bref.gl();

    return 0;
}

代码解释:

  • 基类 Base
    • 包含一个私有成员变量 n 和一个公有构造函数 Base(int m)
    • 包含一个公有虚函数 gl(),并在 Derive 类中被重写。
    • 包含一个公有函数 g4()
  • 派生类 Derive
    • 继承自基类 Base
    • 包含一个公有构造函数 Derive(int m),调用基类的构造函数初始化基类成员。
    • 重写了基类的虚函数 gl()
  • main 函数:
    • 创建了 Base 类的对象 BobjDerive 类的对象 Dobj
    • 通过 Bobj.gl()Dobj.gl() 调用基类和派生类的 gl() 函数。
    • 使用指针 bp 和引用 bref 指向派生类对象 Dobj,并调用 gl() 函数。

运行结果:

Base::g1()...10
Base::g4()...10
Derive::g1()...20
Derive::g4()...20
Derive::g1()...20
Derive::g4()...20
Derive::g1()...20
Derive::g4()...20

注意:

  • 虚函数在派生类中被重写时,需要使用 override 关键字。
  • 基类和派生类中的 g4() 函数都是非虚函数,调用时会根据对象类型选择相应的函数。
  • 使用指针和引用可以指向派生类对象,并通过它们访问基类和派生类的成员。
  • 本示例只是简单演示了类继承的基本概念,实际应用中可能会有更复杂的使用场景。
C++ 类继承示例:Base 和 Derive 类

原文地址: https://www.cveoy.top/t/topic/nw7u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录