网站建设服务都包含景区网站建设策划

张小明 2026/1/8 15:33:16
网站建设服务都包含,景区网站建设策划,京东客网站怎么做,邢台做网站推广报价最近刚学完C的继承与派生部分#xff0c;这部分知识点有点多且容易混淆#xff0c;比如public、protected、private三种继承方式的权限区别#xff0c;还有虚函数和多态的基础关联等。为了巩固学习成果#xff0c;也希望能帮到和我一样正在学习这部分内容的同学#xff0c…最近刚学完C的继承与派生部分这部分知识点有点多且容易混淆比如public、protected、private三种继承方式的权限区别还有虚函数和多态的基础关联等。为了巩固学习成果也希望能帮到和我一样正在学习这部分内容的同学整理了这篇关键知识总结如有错误欢迎大家在评论区指出一、继承与派生的基本概念首先要明确两个核心概念继承和派生其实是同一个过程的两个不同视角。继承子类派生类获取父类基类的成员变量和成员函数的过程目的是实现代码复用避免重复编写相同的代码。派生父类产生子类的过程子类可以在父类的基础上添加新的成员或者重写父类的成员函数实现功能的扩展。举个简单的例子我们有一个“Person”基类包含姓名、年龄等成员和吃饭、睡觉等成员函数然后可以派生出“Student”子类Student会继承Person的所有成员同时还能添加“学号”“班级”等专属成员以及“上课”“考试”等专属成员函数。二、继承的语法格式派生类的定义语法如下核心是指定继承方式和基类class 派生类名 : 继承方式 基类名1, 继承方式 基类名2, ... { // 派生类的新增成员成员变量 成员函数 };注意点继承方式有三种public公有继承、protected保护继承、private私有继承不写默认是private继承class关键字下struct关键字下默认是public继承。支持多继承即一个派生类可以同时继承多个基类用逗号分隔但多继承容易出现二义性问题后面会提到。三、三种继承方式的权限控制重点难点这是继承部分最核心的知识点之一关键是理解基类成员在派生类中的访问权限由“基类中成员的访问权限”和“继承方式”共同决定。先回顾基类成员的三种访问权限public成员基类内外都可访问protected成员基类内可访问基类外不可访问但派生类内可访问private成员只能在基类内访问基类外和派生类内都不可访问派生类无法直接访问基类的private成员。三种继承方式对权限的影响总结如下基类成员权限public继承protected继承private继承public派生类中为public派生类内外均可访问派生类中为protected派生类内可访问外不可派生类中为private仅派生类内可访问protected派生类中为protected派生类中为protected派生类中为privateprivate派生类中不可访问派生类中不可访问派生类中不可访问核心记忆口诀无论哪种继承基类private成员都无法被派生类访问继承方式的权限是“取小原则”——派生类中成员的最终权限取基类成员权限和继承方式权限中更严格的那个public protected private。举个例子基类的public成员用protected继承最终在派生类中是protected权限基类的protected成员用private继承最终在派生类中是private权限。四、派生类的构造函数与析构函数派生类继承了基类的成员但基类的构造函数和析构函数不会被继承需要注意派生类对象创建和销毁时的调用顺序。1. 构造函数的调用顺序创建派生类对象时会先调用基类的构造函数再调用派生类的构造函数。如果是多继承基类构造函数的调用顺序由派生类定义时“基类的声明顺序”决定而非初始化列表中的顺序。语法如果基类没有默认构造函数无参构造派生类的构造函数必须在初始化列表中显式调用基类的带参构造函数。// 基类 class Base { public: Base(int a) : m_a(a) {} // 带参构造无默认构造 private: int m_a; }; // 派生类 class Derived : public Base { public: // 必须在初始化列表中显式调用Base的带参构造 Derived(int a, int b) : Base(a), m_b(b) {} private: int m_b; };2. 析构函数的调用顺序销毁派生类对象时顺序与构造相反先调用派生类的析构函数再调用基类的析构函数。注意如果基类的析构函数不是虚函数当用基类指针指向派生类对象并删除该指针时只会调用基类的析构函数不会调用派生类的析构函数可能导致内存泄漏。因此基类的析构函数建议声明为虚函数后面虚函数部分会详细说。五、继承中的二义性问题二义性是指派生类中出现了多个基类的同名成员导致访问时无法确定访问的是哪个基类的成员常见于多继承场景。1. 常见二义性场景多继承时多个基类有同名成员成员变量或成员函数派生类直接访问该成员会报错菱形继承钻石继承类A派生出类B和类C类D同时继承类B和类C此时类D会继承两份类A的成员访问类A的成员时会出现二义性。2. 解决方法显式指定访问哪个基类的成员派生类对象.基类名::成员名解决菱形继承二义性使用虚继承在基类继承时加上virtual关键字让派生类只继承一份基类的成员。语法class B : virtual public A、class C : virtual public A六、虚函数与多态继承的核心应用多态是C的三大特性之一封装、继承、多态而虚函数是实现多态的基础。这里只总结与继承相关的核心点多态的详细应用可以后续再整理。1. 虚函数的定义在基类的成员函数声明前加上virtual关键字该函数就是虚函数。派生类可以重写覆盖该虚函数函数名、参数列表、返回值必须完全相同除了协变情况这里不展开。class Base { public: virtual void show() { // 虚函数 cout Base::show() endl; } }; class Derived : public Base { public: void show() override { // 重写虚函数override关键字可选用于检查重写是否正确 cout Derived::show() endl; } };2. 多态的实现条件有继承关系基类中有虚函数派生类重写该虚函数用基类指针或引用指向派生类对象通过指针或引用调用虚函数。Base* ptr new Derived(); ptr-show(); // 调用的是Derived::show()而非Base::show()这就是多态 delete ptr;3. 纯虚函数与抽象类如果基类的虚函数只声明不定义并且在声明时加上0该函数就是纯虚函数。包含纯虚函数的类叫做抽象类。class Base { public: virtual void show() 0; // 纯虚函数 };抽象类的特点不能直接实例化对象派生类必须重写抽象类中的所有纯虚函数否则派生类也会成为抽象类无法实例化。七、继承的常见误区与注意事项不要为了代码复用而盲目继承继承的核心是“is-a”关系比如Student is a Person如果是“has-a”关系比如Car has a Engine应该用组合而非继承。基类的析构函数尽量声明为虚函数避免用基类指针删除派生类对象时出现内存泄漏。避免多继承多继承容易引发二义性除非必要优先使用单继承 组合的方式。派生类不能访问基类的private成员如果需要访问可以将派生类声明为基类的友元或者在基类中提供public/protected的接口函数。总结C继承与派生的核心是“代码复用 功能扩展”关键知识点包括三种继承方式的权限控制、构造/析构函数的调用顺序、二义性问题的解决以及虚函数与多态的实现。这部分内容是后续学习STL、面向对象设计模式的基础需要多敲代码练习才能真正掌握。最后再次欢迎大家指出错误也希望这篇总结能帮到正在学习的小伙伴们一起加油
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

德州哪里做网站企业备案号查询系统

还在为网盘下载速度缓慢而苦恼?这款经过精心优化的网盘直链解析工具将彻底改变你的下载体验。通过一键获取真实下载地址,告别传统网盘的种种限制,享受前所未有的高速下载体验。 【免费下载链接】Online-disk-direct-link-download-assistant …

张小明 2026/1/3 5:49:18 网站建设

云南建设学校网站班级空间网站建设作用

3分钟搞定本地音乐歌词:LRCGET终极同步方案 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 还在为本地音乐库缺少同步歌词而烦恼吗&#xf…

张小明 2026/1/3 5:49:17 网站建设

众筹平台网站建设成都网站建设哪家

Genesis是一款专为机器人与具身智能设计的革命性物理引擎,它能够统一模拟刚体、流体、布料等多种物理材料,支持4300万FPS的超高速仿真,让你在几分钟内就能构建复杂的物理交互场景。无论你是想要开发机器人控制系统,还是创建逼真的…

张小明 2026/1/3 5:49:15 网站建设

焦作网站建设的公司哪家好开源企业网站

配置 DAC 与 IPAM:企业网络管理的全面指南 在大型企业网络中,管理文件服务器访问权限和 IP 地址是一项复杂且关键的任务。合理的配置能够提高网络的安全性、可用性和管理效率。本文将详细介绍通过组策略配置访问被拒绝协助,以及如何部署和管理 IP 地址管理(IPAM)解决方案。…

张小明 2026/1/3 5:49:13 网站建设

网站做专业团队wordpress 移动导航

透明度选项的新控制与位置及应用技巧 在设计工作中,对对象透明度的调整是一项常见且重要的操作。在相关软件里,有两种修改对象透明度的方法:使用属性栏控件和对象上的交互式标记(或节点)。对于老版本用户,沿用旧操作方式时可能会有些迷茫;而新用户会发现,新增的透明度…

张小明 2026/1/3 5:49:11 网站建设

南通给公司做网站的网站嵌入地图

IIS与远程桌面服务的功能增强与使用指南 1. IIS日志记录增强 IIS 8.5在日志记录方面有了显著的增强。IIS日志可用于监控和跟踪IIS活动,以及在出现问题时进行故障排除和调试。用户经常希望能够记录更多类型的IIS活动。 为满足这一需求,IIS 8.5允许管理员在标准的W3C日志字段…

张小明 2026/1/2 14:31:14 网站建设