当前位置: 首页 > news >正文

C++的继承语法

在面向对象编程中,继承是一种强大的机制,允许一个类(子类)从另一个类(父类)继承属性和方法。C++是一种支持面向对象编程的编程语言,通过其灵活而强大的继承语法,开发者可以构建更加模块化、可维护和可扩展的代码。

1. 基本的继承语法

在C++中,继承通过关键字 class 后面的冒号来实现。下面是一个简单的例子:

#include <iostream>// 基类(父类)
class Shape {
public:void setWidth(int w) {width = w;}void setHeight(int h) {height = h;}protected:int width;int height;
};// 派生类Rectangle(子类)继承Shape类
class Rectangle : public Shape {
public:int getArea() {return width * height;}
};int main() {Rectangle rect;rect.setWidth(5);rect.setHeight(10);std::cout << "Area: " << rect.getArea() << std::endl;return 0;
}

在上述例子中,Rectangle 类公开继承了 Shape 类。Rectangle 类获得了 Shape 类的属性和方法,可以通过 setWidthsetHeight 方法设置宽度和高度,通过 getArea 方法计算面积。

2. 访问修饰符

在继承中,访问修饰符对于派生类中继承的成员的访问权限至关重要。C++ 提供了三种访问修饰符:publicprotectedprivate。它们分别表示公有继承、保护继承和私有继承。

  • 公有继承(public): 派生类中的成员在外部和基类中均可访问。
class Derived : public Base {// 公有成员
};
  • 保护继承(protected): 派生类中的成员在外部不可访问,但在基类中可访问。
class Derived : protected Base {// 保护成员
};
  • 私有继承(private): 派生类中的成员在外部和基类中均不可访问。
class Derived : private Base {// 私有成员
};

3. 多重继承

C++ 支持多重继承,允许一个类继承自多个基类。例如:

class Derived : public Base1, public Base2 {// ...
};

4. 虚函数和多态

在继承中,虚函数和多态是面向对象编程中重要的概念。通过在基类中声明虚函数,可以实现运行时多态。例如:

class Shape {
public:virtual void draw() {std::cout << "Drawing a shape." << std::endl;}
};class Circle : public Shape {
public:void draw() override {std::cout << "Drawing a circle." << std::endl;}
};int main() {Shape* shape = new Circle();shape->draw();  // 输出 "Drawing a circle."delete shape;return 0;
}

上述例子中,Shape 类的 draw 函数被声明为虚函数,派生类 Circle 中重写了这个虚函数。在运行时,通过指向派生类对象的基类指针,实现了多态的效果。

结语

C++中的继承是构建灵活且可扩展代码的强大工具。通过了解和熟练使用继承语法,开发者可以更好地利用面向对象编程的优势,实现代码的重用和组织。在设计类层次结构时,合理运用访问修饰符、多重继承以及虚函数和多态等概念,将有助于构建高效且易于维护的代码结构。

http://www.lryc.cn/news/256015.html

相关文章:

  • C# .NET平台提取PDF表格数据,并转换为txt、CSV和Excel表格文件
  • spring boot学习第五篇:spring boot与JPA结合
  • 代理IP怎么使用?Mac苹果系统设置http代理IP教程
  • postgresql_conf中常用配置项
  • 使用MfgTool烧写前需准备的文件
  • SAP UI5 walkthrough step4 XML Views
  • Java 1对1
  • 云服务器Centos中安装Docker
  • 人工智能教程(三):更多有用的 Python 库
  • 【带头学C++】----- 九、类和对象 ---- 9.10 C++设计模式之单例模式设计
  • Qt之QCache和QContiguousCache
  • Django讲课笔记01:初探Django框架
  • JS中的闭包
  • 深度学习在计算机视觉中的应用
  • 模板与泛型编程
  • 【Fastadmin】一个完整的轮播图功能示例
  • Ribbon 饥饿加载
  • 【AIGC】大语言模型的采样策略--temperature、top-k、top-p等
  • pip的基本命令和使用
  • RocksDB实现原理
  • mysql 链接超时的几个参数详解
  • [架构之路-259]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 面向服务的架构SOA与微服务架构(以服务为最小的构建单位)
  • 7z压缩成jar包
  • python-缩进式编码+算术运算符+定义与赋值代码示例
  • APM性能分享观看有感
  • 免费好用的API接口攻略
  • 五、C#笔记
  • Oracle的错误信息帮助:Error Help
  • 阿里云磁盘在线扩容
  • OpenCV图像相似性比对算法