网站开发中设置会员等级设计logo商标

张小明 2026/1/10 18:20:43
网站开发中设置会员等级,设计logo商标,关于网站建设的职位,注册公司要多少资金起步多继承派生类的语法格式#xff1a;class 派生类名 : 继承方式1 基类名1,继承方式2 基类名2,…… { ……//派生类新添加的成员};多继承派生类对象的构造和析构:派生类名(参数表):基类名1(参数表1),基类名2(参数表2),对象成员1(参数表3),对象成员2(参数…多继承派生类的语法格式class 派生类名 : 继承方式1 基类名1,继承方式2 基类名2,…… {……//派生类新添加的成员};多继承派生类对象的构造和析构:派生类名(参数表):基类名1(参数表1),基类名2(参数表2),对象成员1(参数表3),对象成员2(参数表4),… {//派生类新添加的成员}派生类构造执行顺序是按照基类对象、成员对象、普通变量的高到低优先级执行的其中其中基类对象的调用顺序和声明继承关系的顺序有关。但是析构函数的执行顺序与之相反先调用派生类的析构函数再调用对象成员的析构函数最后调用基类的析构函数。访问不同基类同名成员时的二义性class A{ public: int value; void f(){}; }; class B{ public: int value; void f(){}; void g(){}; }; class C: public A, public B{ public: void g(){}; void h(){}; }; int main(){ C C1; C1.f(); C1.value9; return 0; }这里在调用f()和value时会出现二义性因为编译器不知道你访问的是A和B中的哪一个()和value。所以在此我们需要填写他的“绝对路径”类名对成员加以限定改成int main(){C C1;C1.A::f();C1.A::value9//访问A的f()和value。return 0;}第二种情况class A{ public: int a; void g( ){}; }; class B1: public A{ int b1; }; class B2: public A{ int b2; }; class C: public B1, public B2{ int c; public: int f(){}; }; int main(){ C Cobj; Cobj.a8; Cobj.A::a9; Cobj.g( ); return 0; }这一二义性的冲突是因为B1、B2都有一个公共基类A这个公共基类会在派生类对象中产生两个基类子对象于是我们也要来对此进行限定Cobj.B1::a9;或 Cobj.B2::a9;但是这还有一个问题使用绝对路径找到的基类我们也可以得知派生类对象中存在多个基类对象的拷贝导致空间浪费解决方法也很简单将A设为虚基类即可这样 B1 和 B2 继承 A 时C 最终只会保留一份 A 的子对象就不会有二义性了。虚基类虚基类子对象被合并成一个子对象这种“合并”作用使得可能出现的二义性被消除。下面是使用虚基类与没使用虚基类的概念图class A { public: int a 10; void g() { cout A的g()函数a a endl; } }; // B1虚继承A class B1 : virtual public A {}; // B2虚继承A class B2 : virtual public A {};虚基类构造函数的调用次序有着自己独特的次序规则1对于最终派生类来说虚基类的构造必须在非虚基类之前调用2同一个层次中包含多个虚基类那么按照虚基类构造函数按它们说明的次序调用。若虚基类由非虚基类派生则遵守先调用基类构造函数再调用派生类构造函数的规则。举个栗子class base{…}; class bas2{…}; class level1 : public base2, vitrual public base{…}; class level2 : public base2, vitrual public base{…}; class toplevel : public level1, vitrual public level2{…};声明toplevel 时构造顺序是从 “最顶层虚基类” 开始再到 “普通基类 / 中间类”最后到自身第一步先调用全局虚基类base被level1、level2都虚继承了所以base是全局虚基类会被优先构造且只构造 1 次→ 顺序第 1 位base第二步按照规则优先调用虚基类level2是toplevel的虚基类所以要先构造level2规则1而构造level2时要先构造它的基类level2的基类base2普通先构造 base虚基类已经构造过了不再构造规则2→ 顺序第 2-3 位base2level2 的普通基类 → level2第三步level1是toplevel的普通基类构造level1时要先构造它的基类level1的基类base2普通先构造 base虚基类已构造规则2→ 顺序第 4-5 位base2level1 的普通基类 → level1第四步最后构造toplevel→ 顺序第 6 位toplevel综合base全局虚基类→ base2level2 的普通基类→ level2toplevel 的虚基类→ base2level1 的普通基类→ level1toplevel 的普通基类→ toplevel例2class base{…}; class base2{…}; class level1 : virtual public base2, virtual public base{…}; class level2 : virtual public base2, virtual public base{…}; class toplevel : public level1, virtual public level2{…};同样的道理但不同的是level1和level2都是虚基类。此时base与base2都是全局变量当有多个全局虚基类时构造顺序遵循按最终派生类继承链中虚基类首次出现的 继承声明顺序排序。最终派生类toplevel的继承链中base2和base首次出现在level1、level2的继承声明里且声明顺序是base2在前、base在后 → 先构造base2再构造base。所以按照构造顺序定下base2为第一位basee为第二位。再通过规则1优先构造toplevel的虚基类level2为第三位再构造普通类level1为第五位最后构造自身toplevel。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

科凡网站建设jsp网站开发详解pdf

EmotiVoice多语言支持情况一览(含中文优化) 在智能语音助手越来越“懂人心”的今天,你是否也曾好奇:为什么有些合成语音听起来像念稿,而另一些却仿佛带着情绪、能打动人?这背后的关键,早已不再是…

张小明 2025/12/22 22:19:23 网站建设

企业网站软件兰州关键词快速上首页排名

5个ControlNet实战技巧:从零掌握多条件AI图像生成 【免费下载链接】controlnet-union-sdxl-1.0 项目地址: https://ai.gitcode.com/hf_mirrors/xinsir/controlnet-union-sdxl-1.0 ControlNet作为ControlNet的升级版本,在AI图像生成领域带来了革命…

张小明 2026/1/3 20:14:19 网站建设

关于做外汇现货的网站房屋设计用什么软件

Wan2.2-T2V-A14B 与 Token 计费:打造高效、可控的视频生成服务 你有没有想过,一条30秒的品牌宣传视频,可能不再需要一个导演组拍一周——而只需要一句话:“一位穿汉服的女孩在樱花树下起舞,背景是杭州西湖春景&#xf…

张小明 2025/12/22 22:17:21 网站建设

摄影网站cms公司网站没做301怎么做301

5个YashanDB的成功实施经验借鉴与分享在当今数据驱动的企业环境中,数据库技术的发展逐渐显现出其关键作用。然而,企业在实施数据库方案时常常面临一系列挑战,包括性能瓶颈、数据一致性问题及高可用性需求等。在这样的背景下,Yasha…

张小明 2026/1/9 15:17:35 网站建设

如何进行医药网站建设网站开发使用云数据库技术教程

Wan2.2-T2V-5B本地化部署方案:保护数据隐私的最佳实践你有没有想过,一个能“看懂文字就生成视频”的AI模型,居然能在你的办公室服务器上安静运行,连一比特数据都不用上传到云端?🤯 这听起来像科幻片的桥段&…

张小明 2026/1/8 8:20:28 网站建设

网站搭建培训网站空间可以自己买吗

💡实话实说:CSDN上做毕设辅导的都是专业技术服务,大家都要生活,这个很正常。我和其他人不同的是,我有自己的项目库存,不需要找别人拿货再加价。我就是个在校研究生,兼职赚点饭钱贴补生活费&…

张小明 2025/12/24 5:03:08 网站建设