做什么网站赚钱河北建设厅网站开通账号

张小明 2026/1/9 22:00:33
做什么网站赚钱,河北建设厅网站开通账号,常见的网站开发软件有哪些,wordpress固定链接+404一.继承的概念继承是一种可以让代码复用的机制#xff0c;它在保持原有类结构的基础上进行拓展#xff0c;增加方法和变量形成新的类#xff0c;称为派生类。派生类继承的叫做基类。继承定义格式继承按照访问权限符分类类成员/继承方法public继承protect继承private继承基类…一.继承的概念继承是一种可以让代码复用的机制它在保持原有类结构的基础上进行拓展增加方法和变量形成新的类称为派生类。派生类继承的叫做基类。继承定义格式继承按照访问权限符分类类成员/继承方法public继承protect继承private继承基类public派生类的public成员派生类的protect成员派生类的private成员基类protect派生类的protect成员派生类的protect成员派生类的private成员基类private派生类不可见派生类不可见派生类不可见这样做的目的是protect可以让子类进行访问的到同时保证类外不会访问到protect的成员虽然基类private派生类不可见但派生类仍然继承了基类的成员基类的private成员在派生类中无论以何种方式继承都是不可见的。这种不可见性意味着基类的私有成员虽然会被继承到派生类对象中但在语法上禁止派生类对象无论在类内部还是外部访问这些成员。基类的private成员在派生类中不可访问。若希望基类成员不能被类外直接访问但允许派生类访问则应将其定义为protected。可见protected访问限定符正是为继承场景而设计的。通过总结可以发现基类的私有成员在派生类中始终不可见。对于基类的其他成员在派生类中的访问权限等于成员在基类的访问限定符与继承方式中的较小者遵循public protected private的优先级规则。class关键字默认使用private继承方式struct关键字默认使用public继承方式。但最佳实践是显式声明继承方式。实际开发中主要采用public继承极少使用protected/private继承。因为这两种继承方式会导致继承的成员只能在派生类内部使用不利于代码的扩展和维护。二.基类与派生类的转化public继承的派生类对象可以赋值给基类的指针/引用。把派生类的基类部分切片给基类指针/引用基类对象不能赋值给派生类对象基类的指针/引用可以强制转换类型赋值给派生类的指针/引用。但必须是基类指针指向派生类对象才是安全的。意思就是创建基类类型的指针指向派生类而不是创建基类类型指针指向基类后又把这个指针转给派生类指针。三.继承中的作用域继承体系里基类和派生类有独立的作用域派生类与基类有同名成员派生类成员会隐藏基类的同名成员叫做隐藏对于隐藏的函数可以指定类域访问成员函数只要同名就会构成隐藏四.派生类默认成员函数派生类构造函数必须调用基类的构造函数用来初始化基类的成员。若基类没有默认的构造函数则派生类必须在初始化列表初始化。派生类的拷贝构造函数必须调用基类的拷贝构造函数完成基类的拷贝构造。派生类的operator必须显式调用基类的operator来完成基类部分的复制。需要注意的是派生类的operator会隐藏基类的operator因此在调用时需要指定基类作用域。派生类的析构函数执行完毕后会自动调用基类的析构函数来清理基类成员。这种机制确保了对象销毁时遵循先清理派生类成员、再清理基类成员的正确顺序。派生类初始化对象先调用基类构造在调用派生类构造析构先调用派生类析构再调用基类析构由于多态需要析构函数构成重写导致析构函数处理成destructor导致父类子类会隐藏父类析构函数在基类不加virtual下实现不可被继承类可以将类名后加final这代表此类无法被继承也可以将类的默认构造函数用private 让子类无法访问就无法被继承了继承和友元父类的友元不会被子类继承继承与静态成员基类定义一个static成员则整个继承关系中只有这一个这样的成员五.多继承单继承当一个派生类仅有一个直接基类时这种继承关系称为单继承。多继承若一个派生类拥有两个或更多直接基类则称为多继承。在多继承中对象的内存布局遵循继承顺序先继承的基类位于内存前部后继承的基类依次排列派生类成员则置于最后。菱形继承这是多继承中的特殊情形。从对象成员模型分析可见菱形继承会导致数据冗余和二义性问题如Assistant对象中包含两份Person成员。由于多继承必然存在菱形继承问题部分语言如Java选择直接禁用多继承来规避此问题。因此在实际开发中应当避免设计菱形继承结构。虚继承因为多继承导致棱形继承二义性所以就有了虚继承。虚继承是C中解决多重继承带来的菱形继承问题的一种机制。它通过确保基类在继承体系中只被继承一次来避免数据冗余和歧义。在多重继承中当派生类通过不同路径继承同一个基类时会产生菱形继承问题。例如class Base { public: int data; }; class Derived1 : public Base { // 继承Base }; class Derived2 : public Base { // 继承Base }; class Final : public Derived1, public Derived2 { // 通过Derived1和Derived2间接继承了两个Base };这种情况下Final类中将包含两个Base子对象导致数据冗余 - 两份Base成员变量访问歧义 - 无法直接访问Base成员必须通过特定路径虚继承的解决方案使用virtual关键字声明继承关系class Derived1 : virtual public Base { // 虚继承Base }; class Derived2 : virtual public Base { // 虚继承Base }; class Final : public Derived1, public Derived2 { // 现在只包含一个Base子对象 };实现原理虚基类指针vbase_ptr编译器为每个虚继承的类添加一个指针指向共享的基类子对象虚基类表vbtable存储虚基类偏移量信息共享实例确保整个继承体系中只有一个基类实例示例代码#include iostream class Animal { public: Animal() { std::cout Animal constructor\n; } void breathe() { std::cout Breathing...\n; } }; class Mammal : virtual public Animal { public: Mammal() { std::cout Mammal constructor\n; } }; class WingedAnimal : virtual public Animal { public: WingedAnimal() { std::cout WingedAnimal constructor\n; } }; class Bat : public Mammal, public WingedAnimal { public: Bat() { std::cout Bat constructor\n; } }; int main() { Bat bat; bat.breathe(); // 没有歧义因为只有一个Animal实例 return 0; }输出结果Animal constructor Mammal constructor WingedAnimal constructor Bat constructor Breathing...六.继承和组合继承与组合的区别继承关系public继承体现的是is-a关系即每个派生类对象本质上都是一个基类对象。继承允许基于基类实现来定义派生类这种复用方式称为白箱复用white-box reuse。白箱指基类的内部细节对派生类可见。继承会破坏基类封装性基类的修改会显著影响派生类两者之间存在强依赖关系耦合度高。组合关系组合体现的是has-a关系例如类B组合类A时每个B对象都包含一个A对象。组合是继承之外的另一种复用方式通过组装对象实现更复杂功能要求被组合对象有良好定义的接口。这种复用称为黑箱复用black-box reuse因为对象内部细节不可见仅通过接口交互。组合类之间依赖关系弱耦合度低有助于保持类的封装性。使用建议优先使用组合组合耦合度低代码更易维护继承适用场景当类之间确实是is-a关系时需要实现多态功能时权衡选择当关系既适合继承又适合组合时优先选择组合方式
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

仿wordpress主题下载长春seo代理计费

第一章:Open-AutoGLM与SoapUI功能协同差异全解析在自动化测试与API验证领域,Open-AutoGLM 与 SoapUI 各自代表了新一代智能测试框架与传统接口测试工具的典型范式。两者在设计理念、技术架构及应用场景上存在显著差异,理解其协同机制与功能边…

张小明 2026/1/6 14:50:33 网站建设

手机网站轮播图宝塔配合WordPress

ExplorerPatcher:Windows 11界面定制终极指南 【免费下载链接】ExplorerPatcher 项目地址: https://gitcode.com/gh_mirrors/exp/ExplorerPatcher 还在为Windows 11的新界面感到不适应吗?ExplorerPatcher正是您需要的完美解决方案!这…

张小明 2026/1/3 12:24:10 网站建设

商贸网站网站建设开发的目的

为什么你的MinerU本地部署总是失败?5个关键检查点帮你彻底解决 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.com/Op…

张小明 2026/1/4 1:08:30 网站建设

怎么做好网站营销上海十大营销策划公司

还在为5G设备成本高昂、部署复杂而苦恼吗?开源5G仿真测试工具UERANSIM为你提供了完美的解决方案,这款完整的5G UE和RAN实现工具让任何人都能轻松进行专业的5G网络测试。作为全球首个开源的5G独立组网仿真平台,UERANSIM彻底改变了传统5G测试的…

张小明 2026/1/3 16:46:06 网站建设

医院网站做竞价需要注意广告法做盗版网站会怎样

还在为视频格式不兼容而苦恼?想要一次性处理上百个媒体文件却找不到合适的解决方案?今天我要向你推荐一款真正改变游戏规则的多媒体处理工具——Shutter Encoder。这款基于FFmpeg的专业视频转换工具,让复杂的多媒体操作变得像拖拽一样简单&am…

张小明 2026/1/4 6:50:36 网站建设

上海工信部网站备案dns设置 看国外网站

用AI拍出火星未来:Wan2.2-T2V-A14B如何让科幻构想“一秒成片”?🚀 你有没有想过,有一天只需要写一段话——比如“在火星赤道的红色高原上,六足机器人正3D打印透明穹顶,太阳能板缓缓展开,地球悬于…

张小明 2026/1/3 23:00:20 网站建设