阅读量:0
在C++中,继承和多态是面向对象编程的两个核心概念。继承允许一个类(子类)继承另一个类(父类)的属性和方法,而多态允许子类以不同的方式实现父类的方法。以下是在Ubuntu环境下使用C++实现继承和多态的基本步骤:
继承
- 定义基类:
// 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
- 定义派生类:
// 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
#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
解释
- 基类:
BaseClass是一个基类,包含一个虚函数display。 - 派生类:
DerivedClass继承自BaseClass,并重写了display方法。 - 多态:通过基类的指针
basePtr调用display方法时,实际调用的是派生类DerivedClass的display方法。
注意事项
- 使用
virtual关键字声明基类中的方法,以便在派生类中重写。 - 使用
override关键字可以确保派生类正确地重写了基类的虚函数。 - 确保在析构函数前加上
virtual,以确保通过基类指针删除派生类对象时能正确调用派生类的析构函数。
通过这种方式,你可以在Ubuntu环境下使用C++实现继承和多态。
以上就是关于“Ubuntu C++如何实现继承与多态”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm