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

C++ (初始面向对象之继承,实现继承,组合,修饰权限)

初始面向对象之继承

根据面向对象的编程思路,我们可以把共性抽象出来封装成类,然后让不同的角色去继承这些类,从而避免大量重复代码的编写

实现继承

继承机制是面向对象程序设计中使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,添加功能,这样产生的新类叫做子类(派生类),被继承的类型称为父类(基类)

格式

class 派生类名:继承方式  基类名1,继承方式 基类名2,....

{

        派生类成员;

};

继承方式有: public,protrcted,private

 class Houyi:public Hero,pulbic Ranger{public:Houyi(const string &name,int distance,int looks);~Houyi();void show() const;private:int looks; // 颜值
}

此时的Houyi这个类继承了Hero和Ranger两个类,拥有了Hero和Ranger的所有成员

构造函数的调用顺序:先按照继承时的顺序挨个调用基类的构造函数,然后调用派生类的构造函数

析构函数调用顺序和构造函数调用顺序相反

某个类的私有成员属性只能在该类中使用, 如果想在派生类中使用,就必须对外提供一个公共的方法。

组合

组合是对现有对象进行拼装即组合产生新的具有更复杂功能的类,组合强调的是整体与部分的关系,它们之间有明显的“has a”关系

class 类名{public :成员函数;private :类1 对象1;类2 对象2;};

构造函数的调用顺序:

1.按照继承时的顺序挨个调用基类的构造函数

2.调用对象成员的构造函数

3.调用派生类的构造函数

继承的优缺点

继承是一种 “is-a” 的关系,例如 Student 继承 Person,说明 Student 是 Person。

优点: 方法复用: 子类可以复用父类的方法,并在需要时重写(override)父类的方法,方便地实现对父类的扩展。

缺点: 细节可见性: 父类的内部细节对子类是可见的,违反了信息隐藏原则。

编译时绑定: 子类继承的父类方法在编译时确定,无法在运行时改变父类方法的行为。

高耦合: 如果父类的方法更改(例如增加参数),子类必须进行相应的修改,导致子类与父类高度耦合,违反了低耦合原则。

组合的优缺点

组合是一种 “has-a” 或 “contains-a” 的关系,例如一个 Car 包含一个 Engine 对象。

在类设计时,通过将一 个类的对象作为另一个类的成员变量来实现组合。

优点:

低耦合: 当前对象与包含对象的内部细节分离,只通过其公开接口进行交互,降低耦合度。

运行时动态绑定: 当前对象可以在运行时动态绑定所包含的对象,可通过 set 方法进行对象赋值。

灵活性高: 可以将不同的对象组合在一起,从而灵活地设计系统。

缺点:

对象数量增多: 组合可能会产生大量对象,增加内存使用和管理复杂性。

接口设计复杂: 为了组合多个对象,需要仔细设计和定义接口,以确保类之间的协同工作。

修饰权限

类成员的修饰权限

继承方式

相关文章:

  • 从 SQL2API 到 Text2API:开启数据应用开发的新征程
  • Android: gradient 使用
  • DAY 46 leetcode 459--字符串.重复的子字符串
  • 学习笔记—C++—模板初阶
  • 「超级桌面TV版下载」超级桌面TV版_安卓电视版免费下载安装教程
  • 芯片封装制造技术分析
  • C语言多进程素数计算
  • 白酒制造主数据管理全链路解析:业务重塑与AI赋能
  • IDEA202403常用快捷键【持续更新】
  • 2025年面板安装 Wordpress 网站教程
  • 【软件测试】测试分类
  • Android ViewStub显示VISIBLE与消失GONE,Kotlin(2)
  • 【数据结构】3.单链表专题
  • 从零开始构建 Ollama + MCP 服务器
  • 数据结构-树与二叉树
  • Fiddler 进行断点测试:调试网络请求
  • Python自动化办公
  • OFDM 信道表示(1)
  • 如何编制实施项目管理章程
  • shardingsphere-jdbc集成Seata分布式事务
  • 电脑哪里做模板下载网站/seo赚钱暴利
  • 电脑网页制作软件下载/seopeix
  • 河北集团网站建设/seo和sem的区别与联系
  • 十堰市茅箭区建设局网站/网站优化检测工具
  • 自己做的网站放在服务器哪里/国内永久免费云服务器
  • 网页设计制作网站首页/网络公关