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

哪些网站可以做问卷调查赚钱灰色行业关键词优化

哪些网站可以做问卷调查赚钱,灰色行业关键词优化,网站建设需要工作计划,深圳博纳网站建设目录 原理 总结 前面提到过,解决菱形继承产生的数据二义性问题和数据冗余,就需要用到虚拟继承,关于它是如何解决的,我们来一起研究。 class Person { public :string _name ; // 姓名 }; class Student : virtual public Perso…

目录

原理

总结


前面提到过,解决菱形继承产生的数据二义性问题和数据冗余,就需要用到虚拟继承,关于它是如何解决的,我们来一起研究。

class Person
{
public :string _name ; // 姓名
};
class Student : virtual public Person
{
protected :int _num ; //学号
};
class Teacher : virtual public Person
{
protected :int _id ; // 职工编号
};
class Assistant : public Student, public Teacher
{
protected :string _majorCourse ; // 主修课程
};
void Test ()
{Assistant a ;a._name = "peter";
}

原理

为了研究虚拟继承原理,我们给出了一个简化的菱形继承继承体系,再借助内存窗口观察对象成 员的模型。

class A
{
public:int _a;
};
// class B : public A
class B : virtual public A
{
public:int _b;
};
// class C : public A
class C : virtual public A
{
public:int _c;
};
class D : public B, public C
{
public:int _d;
};
int main()
{D d;d.B::_a = 1;d.C::_a = 2;d._b = 3;d._c = 4;d._d = 5;return 0;
}

调试后打开内存窗口,定位到对象d的地址去查看,可以看到没有加virtual关键字时,B类和C类实例化了两份A类,这就是数据冗余。

下图是菱形虚拟继承的内存对象成员模型:这里可以分析出D对象中将A放到的了对象组成的最下 面,这个A同时属于B和C,那么B和C如何去找到公共的A呢?这里是通过了B和C的两个指针,指 向的一张表。这两个指针叫虚基表指针,这两个表叫虚基表。虚基表中存的偏移量。通过偏移量 可以找到下面的A。

总结

1. 很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱 形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。

2. 多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。

3.

继承和组合 public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。

组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象。

 优先使用对象组合,而不是类继承 。

继承允许你根据基类的实现来定义派生类的实现。这种通过生成派生类的复用通常被称 为白箱复用(white-box reuse)。术语“白箱”是相对可视性而言:在继承方式中,基类的 内部细节对子类可见 。继承一定程度破坏了基类的封装,基类的改变,对派生类有很 大的影响。派生类和基类间的依赖关系很强,耦合度高。

对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象 来获得。对象组合要求被组合的对象具有良好定义的接口。这种复用风格被称为黑箱复 用(black-box reuse),因为对象的内部细节是不可见的。对象只以“黑箱”的形式出现。 组合类之间没有很强的依赖关系,耦合度低。优先使用对象组合有助于你保持每个类被 封装。

实际尽量多去用组合。组合的耦合度低,代码维护性好。不过继承也有用武之地的,有 些关系就适合继承那就用继承,另外要实现多态,也必须要继承。类之间的关系可以用 继承,可以用组合,就用组合。

// Car和BMW Car和Benz构成is-a的关系class Car{protected:string _colour = "白色"; // 颜色string _num = "陕ABIT00"; // 车牌号};class BMW : public Car{public:void Drive() {cout << "好开-操控" << endl;}};class Benz : public Car{public:void Drive() {cout << "好坐-舒适" << endl;}};// Tire和Car构成has-a的关系class Tire{protected:string _brand = "Michelin";  // 品牌size_t _size = 17;         // 尺寸};class Car{protected:string _colour = "白色"; // 颜色string _num = "陕ABIT00"; // 车牌号Tire _t; // 轮胎}; 

http://www.15wanjia.com/news/23039.html

相关文章:

  • 网站导航做多大重庆镇海seo整站优化价格
  • 做ppt的网站兼职网页制作教程
  • 工信部isp申请网站杭州网站建设书生商友
  • 网站首页布局设计代码代写新闻稿
  • 浙江建设网站重庆seo整站优化设置
  • 公司建网站一般多少钱如何用手机创建网站
  • 做淘宝先在批发网站上拿货广告联盟平台自动赚钱
  • 如何形容网站免费的大数据分析平台
  • 做网站什么前端框架方便什么是电商平台推广
  • 如何建立一个学校网站免费友情链接网页
  • 网站建设手机端管网长沙网络公司营销推广
  • 怎么利用网站做cpa推广google安卓版下载
  • 自己设计网页的网址关键词优化是什么工作
  • 做网站需要基础吗微商引流一般用什么软件
  • 网站优化个人工作室seo推广优化工具
  • 面包屑 网站友情链接查询
  • 建筑铝模板价格一览表seo网站关键词优化哪家好
  • 上海建设网站的公司营销活动怎么做吸引人
  • 公司做网站需要提供的材料模板建站代理
  • 南部县人民医院整体迁建项目关键词诊断优化全部关键词
  • 购买域名后怎么建网站竞价托管资讯
  • 福建漳州网站建设费用哈尔滨百度推广联系人
  • 手机网站开发注意的问题优化排名推广教程网站
  • 互助县公司网站建设百度推广一级代理商名单
  • 做网站需要什么部门批准广东深圳疫情最新消息今天
  • 空间商网站ip被攻击后换ip收录提交入口网址
  • 怎么做网站seo优化信息发布平台推广有哪些
  • 有没有专门做一件代发的网站创建网站怎么创
  • 成都住房和城乡建设局网站投放广告
  • wordpress登录wp-admin网站排名在线优化工具