C++ 类继承示例:Base 和 Derive 类
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类的对象Bobj和Derive类的对象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()函数都是非虚函数,调用时会根据对象类型选择相应的函数。 - 使用指针和引用可以指向派生类对象,并通过它们访问基类和派生类的成员。
- 本示例只是简单演示了类继承的基本概念,实际应用中可能会有更复杂的使用场景。
原文地址: https://www.cveoy.top/t/topic/nw7u 著作权归作者所有。请勿转载和采集!