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

网站开发具体工作有那些网站设计职业工作室

网站开发具体工作有那些,网站设计职业工作室,wordpress获取网址,网站设计分辨率(❁◡❁)(●◡●)╰(*▽*)╯(*/ω#xff3c;*)(^///^)(❁◡❁)(❁◡❁)(●◡●)╰(*▽*)╯(*/ω#xff3c;*)(❁◡❁)(●’◡’●)╰(▽)╯(/ω#xff3c;)(///) C#xff1a;继承#xff1a;面向对象编程的重要特性 前言**继承**1.继承的概念及定义1.1继承的概念1.2继… (❁´◡❁)(●◡●)╰(*°▽°*)╯(*/ω*)(^///^)(❁´◡❁)(❁´◡❁)(●◡●)╰(*°▽°*)╯(*/ω*)(❁´◡❁)(●’◡’●)╰(°▽°)╯(/ω)(///) C继承面向对象编程的重要特性 前言**继承**1.继承的概念及定义1.1继承的概念1.2继承的定义1.2.1定义的格式1.2.2继承关系和访问限定符1.2.3继承后基类父类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.多继承与菱形继承和菱形虚拟继承 文章简介 本篇文章将 C继承全特化偏特化非类型模板参数模板的分离编译 相关知识进行分享 如果您觉得文章不错期待你的一键三连哦 前言 在这篇文章中你可以学习到继承作为面向对象编程的重要特性它允许一个类子类继承另一个类父类的属性和方法。 在文章中涵盖的主要内容 继承的概念继承的语法继承的作用单继承多继承菱形继承菱形虚拟继承菱形虚拟继承与菱形继承在内存中的差异等。 继承 1.继承的概念及定义 1.1继承的概念 继承是面向对象程序设计使代码可以复用的最重要的手段它允许程序员在保持原有类特性的基础上进行扩展增加功能这样产生新的类称派生类。简单地说就是类的复用 1.2继承的定义 1.2.1定义的格式 举个栗子下附代码 代码段 class Person { protected: string _name;int _age;string _sex;int _tel; }; class student:public Person //student继承了Person这个类 { protected:int _id; };1.2.2继承关系和访问限定符 1.2.3继承后基类父类成员访问方式的变化 类成员/继承方式public继承protected继承private继承基类的public成员派生类的public成员派生类的protected成员派生private成员基类的protected成员派生类的protected成员派生类的protected成员派生类的private成员基类的private成员在派生类中不可见在派生类中不可见在派生类中不可见 总结 1.基类的private成员在派生类中无论以什么方式继承都是不可见的这里的不可见是指基类的私有成员还是被继承到了派生类对象中但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它 2.基类private成员在派生类中是不能被访问如果基类成员不想在类外直接被访问但需要在派生类中能访问就定义为protected。可以看出保护成员限定符是因继承才出现的 3.实际上面的表格我们进行一下总结会发现基类的私有成员在子类都是不可见。基类的其他成员在子类的访问方式 Min(成员在基类的访问限定符继承方式)public protected private 4.使用关键字class时默认的继承方式是private使用struct时默认的继承方式是public不过最好显示的写出继承方式 5.在实际运用中一般使用都是public继承几乎很少使用protetced/private继承也不提倡使用protetced/private继承因为protetced/private继承下来的成员都只能在派生类的类里面使用实际中扩展维护性不强 举个栗子 从上面例子可以看出private继承后publicprotected成员在派生类可以访问private成员不可访问 2.基类和派生类对象赋值转换 派生类对象 可以赋值给 基类的对象 / 基类的指针 / 基类的引用。这里有个形象的说法叫切片或者切割。 基类对象不能赋值给派生类对象。 基类的指针或者引用可以通过强制类型转换赋值给派生类的指针或者引用。注意:但是必须是基类的指针是指向派生类对象时才是安全的。这里基类如果是多态类型会有特殊处理后面的文章会提到 class Person { protected: string _name;int _age;string _sex;int _tel; }; class student:public Person { protected:int _id; };int main() {student s1;Person p1;p1 s1;//s1 p1; //这里不能基类给派生类Person pp1 s1; //是对截断后的内容引用Person* pp2 s1; //指向的是截断后的内容student* ss;ss (student*)p1; //基类的指针可以通过强制类型转换赋值给派生类的指针return 0; }3.继承中的作用域 1. 在继承体系中基类和派生类都有独立的作用域 就凭这一点因此两个域中的函数不能构成函数重载 2. 子类和父类中有同名成员子类成员将屏蔽父类对同名成员的直接访问这种情况叫隐藏也叫重定义。在子类成员函数中可以使用 基类::基类成员 显示访问 3. 需要注意的是如果是成员函数的隐藏只需要函数名相同就构成隐藏。 4. 注意在实际中在继承体系里面最好不要定义同名的成员。 4.派生类的默认成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认的构造函数则必须在派生类构造函数的初始化列表阶段显示调用。先父后子 派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。 派生类的operator必须要调用基类的operator完成基类的复制。 派生类的析构函数会在被调用完成后自动调用基类的析构函数清理基类成员。因为这样才能保证派生类对象先清理派生类成员再清理基类成员的顺序。先子后父 编译器会对析构函数名进行特殊处理处理成destrutor()所以父类析构函数不加virtual的情况下子类析构函数和父类析构函数构成隐藏关系。 如果要显示调用需要指定作用域 5.继承与友元 友元关系不能被继承也就是说基类友元不能访问子类私有和保护成员 举个例子 6. 继承与静态成员 基类定义了static静态成员则整个继承体系里面只有一个这样的成员。因为静态成员函数不是放在类里面的而是放在静态区的是这个类的对象所公有的无论派生出多少个子类都只有一个static成员实例 利用这个特性可以统计这个类被创建了多少个对象 如果被继承了无论派生类实例化出对象了还是基基类实例化出对象都会调用基类的构造函数就可以统计出个数 例子 class Person { public:Person(){_count;} protected: int _age; public:static int _count; }; int Person::_count 0;class student:public Person { public:student(){} protected:int _id; };int main() {student S1;student S2;Person P1;Person P2;cout Person::_count endl; //打印结果为4return 0; }7.多继承与菱形继承和菱形虚拟继承 单继承一个子类只有一个直接父类时称这个继承关系为单继承 多继承一个子类只有多个直接父类时称这个继承关系为多继承 菱形继承 菱形继承的问题菱形继承有数据冗余和二义性的问题。在D的对象中A成员会有两份。因为BC中都继承了A里面各有一份A然后D继承了B和C所以会有两份A 因为有两份所以数据冗余了又因为D里面有两份A的成员如果想通过D实例化的对象去访问B中继承的A的成员时不知道是去访问B的还是C的结合下面例子看看 结合下面代码 class A { public:int _a; }; class B:public A { protected:int _b; }; class C:public A { protected:int _c; }; class D:public B, public C { protected:int _d; }; int main() {D dd;//dd._a 10; //会报错访问不明确dd.B::_a 10;dd.C::_a 100; //这样指定类域访问也可以但是代码稍许冗余return 0; }解决方法 虚拟继承可以解决菱形继承的二义性和数据冗余的问题。如上面的继承关系在B和C的继承A时使用虚拟继承即可解决问题。需要注意的是虚拟继承不要在其他地方去使用。 解决后的代码 class A { public:int _a; }; class B:virtual public A /这里 { protected:int _b; }; class C:virtual public A //这里 { protected:int _c; }; class D:public B, public C { protected:int _d; };在哪里virtual的问题 在造成数据冗余的那两个类的继承方式前面加virtual 比如 菱形继承和虚拟菱形继承在内存上的差异 我们讨论的是VS上 D对象中将A放到的了对象组成的最下面这个A同时属于B和C那么B和C如何去找到公共的A呢这里是通过了B和C的两个指针指向的一张表。这两个指针叫虚基表指针这两个表叫虚基表。虚基表中存的偏移量。通过偏移量可以找到下面的A。 (❁´◡❁)(●◡●)╰(*°▽°*)╯(*/ω*)(^///^)(❁´◡❁)(●’◡’●)
http://www.hkea.cn/news/14475146/

相关文章:

  • 下载wix做的网站php软件网站建设
  • 山东城乡建设厅网站首页抖音 运营
  • 网站制作模板过程北京各大网站推广平台哪家好
  • 西安演出公司网站建设福田做网站福田网站建设福田建网站500
  • 网站如何快速收录广州网站设计哪家公司好
  • 河南秋实网站建设手机app开发定制公司
  • 长春制作网站哪家好lovevideo门户视频wordpress主题
  • 哈尔滨服务专业的建站wordpress百度统计代码
  • 廊坊市固安县建设局网站全国十大装饰公司最有名的是
  • 网站推广原则如何建设视频网站
  • 做团购网站怎样赚钱怎样建立俄罗斯网站
  • 手机网站开发入门上海注册公司注册地址
  • 霸州市网站建设企业备案查询系统
  • 装修公司做网站的好处国内好的网站建设
  • 做三合一网站的好处做响应式网站的公司
  • 深圳高端网站建设价格数据库对于做网站的重要性
  • 网站页面优化方法有哪些内容网龙网络公司简介
  • 北京手机网站建设公司装修费属于什么费用
  • 株洲seo网站优化动漫制作专业专升本考什么专业
  • 北京工信部网站建网站用营业执照吗
  • 团购网站单页模板亚马逊入驻费用及条件
  • 德尔普网站建设网络服务合同范本免费
  • 急求一张 网站正在建设中的图片现在如何进行网上推广
  • 51做图片的网站宁波网络公司排名
  • wordpress 制作app苏州百度seo代理
  • 网站备案 信息郑州航空港建设局网站
  • 网站图片的暗纹是怎么做的桥头镇做网站
  • 东平网站制作哪家好网址导航的意思
  • 自己做服务器的网站怎么查网站域名
  • 溧水114网站开发福州市交通建设集团网站