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

怎么做一个电商网站吗学习软件的网站

怎么做一个电商网站吗,学习软件的网站,建设一个网站需要什么,seo关键字优化价格一、单/多/菱形继承 1.单继承 当一个子类只有一个直接父类时#xff0c;称这个继承关系为单继承。 2.多继承 一个子类有两个或以上直接父类时称这个继承关系为多继承。 举个实例#xff1a;新老师进学校工作时#xff0c;一般会作为助教老师#xff0c;一边代课教书称这个继承关系为单继承。 2.多继承 一个子类有两个或以上直接父类时称这个继承关系为多继承。 举个实例新老师进学校工作时一般会作为助教老师一边代课教书一边跟着经验足的老教师后头 学习一阵子。这时我们定义出的Assistant类就同时具有老师、学生这两种属性。这就是多继承的思想。 多继承的书写格式为逗号继承方式父类名 3.菱形继承 是多继承的一种特殊情况。 a.产生的问题 这种继承结构会导致二义性 以及空间浪费等问题。 什么叫产生二义性我用上面的例子解释给你听 class Person { public:Person(string str):_name(str){}string _name; }; ​ class Student : public Person //继承了person { public:Student():Person(student){}int _num0; }; ​ class Teacher : public Person   //继承了person { public:Teacher():Person(teacher){}int _id0; };class Assistant :public Student, public Teacher   //继承的这俩都是person的派生类 {}; int main() {Assistant a;cout a._name endl;return 0; } 这样写编译是无法通过的 这是因为此时的a里面有两个_name编译器不知道用哪个了 如果还是不理解可以看这张图 这就产生了二义性。并且由于Assistant中有两份 _name的拷贝当 _name要用的空间很大的话就会造成空间浪费。 b.如何解决 那遇到菱形继承的情况要怎么解决二义性和数据冗余的问题呢 Way1. 显示指定访问哪个父类的成员可以解决二义性问题但是数据冗余问题无法解决。 cout a.Student::_name endl; cout a.Teacher::_name endl; Way2. 虚拟继承。 先来介绍下虚拟继承虚继承的目的是让某个类做出声明承诺愿意共享它的基类。其中这个被共享的基类就称为虚基类。 怎么设为虚继承呢在继承方式前加上virtual关键字即可。 注意虚拟继承是专门用于处理 菱形继承 的手段不要在其他地方去使用 class Person { public:Person(string str):_name(str){}string _name; }; ​ class Student :virtual public Person   //虚继承 { public:Student():Person(student){}int _num0; }; ​ class Teacher :virtual public Person   //这俩都设为虚继承 { public:Teacher():Person(teacher){}int _id0; }; ​ class Assistant :public Student, public Teacher {}; int main() {Assistant a;cout a._name endl;return 0; } 这里编译器做了优化处理看似有3个Person实际上只有一个这仨都是同一个 虚继承使得从不同路径继承来的同名基类在派生类中只产生一个实例避免了二义性问题。 4.劝告 一般不建议设计出多继承并且如果不是迫不得已不要设计出菱形继承否则在复杂度及性能上容易出问题。 多继承可以认为是C的缺陷之一很多后来的语言都没有多继承如Java。 二、继承和组合 继承与组合都是用于描述类之间的关联关系的。 继承继承是一种is-a的关系表示一个类从另一个类派生而来每个派生类对象都是一个基类对象。 组合组合是一种has-a的关系表示一个类包含另一个类的对象作为成员变量。通过组合一个类可以使用另一个类的功能但不会继承其属性和方法。 在不同的情境下俩类之间设为继承关系还是组合关系好呢下面用例子来说明。 //继承 class Car{…… }; ​ class BMW : public Car{   //宝马is a car这俩构成继承关系…… }; //组合 class Tire{…… }; ​ class Car{   //car has a tire,这俩构成组合关系Tire _t;…… };   通过这俩例子可见用继承还是组合得去判断是is a还是has a如果前者就用继承后者就用组合两个都行那就优先用组合。优先使用组合而不是继承。 这里说明下 优先用组合 的原因 继承是一种白箱复用。所谓白箱复用就是透明可视化的一种复用父类的内部细节对子类可见。这在一定程度上破坏了父类的封装。 并且父类和子类的依赖关系很强耦合度很高。试想假如父类的某个成员被修改了那在所有的子类中也会遭到修改。 而组合是一种黑箱复用。黑箱复用是另一种复用风格新的更复杂的功能可以通过组合对象来获得。这要求被组合的对象具有良好定义的接口。派生类直接拿接口来用而不涉及它的内部实现这保护了基类的封装性。 并且耦合度低代码维护性好我修改基类的某个成员子类并不会受影响。
http://wiki.neutronadmin.com/news/45818/

相关文章:

  • 集团公司做网站的好处有什么青岛网站设计
  • 连云港网站建设开发郴州网站建设公司
  • 公司的网站如何建设方案电商培训内容有哪些
  • 徐州市建设银行网站常州网站推广优化
  • 东莞网站建设服务协议东莞网络营销网络推广系统
  • 绵阳 网站建设网站建设 总体思路
  • 深圳做三网合一网站互联网公司薪酬体系
  • 重庆企业网站开发服务营销手机网站版面
  • 网站建设的要点山东青岛68元建网站
  • 网站外链如何做分类列表页wordpress
  • 上海好的高端网站建设服务公司济南企业自助建站
  • 建设网站要注意事项酷家乐装修设计软件app下载
  • 如何让本机做网站让内网访问产品介绍网站设计
  • 网站备案 邮寄资料新版新白娘子传奇小青最后和谁在一起了
  • wordpress可以做企业网站网站后台程序怎么做
  • 沈阳制作网站企业资深的食品行业网站开发
  • 重庆网站公司推荐360易托管建站工具
  • 德州做网站公司电话投资项目
  • 陕西专业网站建设价格汕头制作网站
  • 建设银行曲江支行网站公司建了网站怎么做分录
  • 商学院网站建设建议wordpress固定连接怎么设置好
  • 深圳平湖做网站html编写新闻页面
  • asp.net网站开发四酷全书金融软件开发公司排名
  • 做网站和做系统的区别seo快速排名
  • 公司网站建设的目标是什么wordpress书插件
  • 网站建设的意义是什么手机关键词seo排名优化
  • 网站的后端怎么开发网站会员体系
  • 国外做网站卖东西要什么条件怎么申请信用卡收款网站接口
  • 深圳阿里网站设计公司大连个人网站开发制作
  • 电子商务网站的特点尚德建设集团网站