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

群晖ds218+做网站遂宁市网站建设

群晖ds218+做网站,遂宁市网站建设,工商局网站年检怎么做,智能管理系统定制开发目录 一#xff0c;继承与友元二#xff0c;继承与静态成员三#xff0c;复杂的菱形继承及菱形虚拟继承四#xff0c;继承的总结和反思 点击跳转上一篇文章#xff1a; 【C】#xff1a;继承(定义赋值兼容转换作用域派生类的默认成员函数… 目录 一继承与友元二继承与静态成员三复杂的菱形继承及菱形虚拟继承四继承的总结和反思 点击跳转上一篇文章 【C】继承(定义赋值兼容转换作用域派生类的默认成员函数) 一继承与友元 友元关系不能继承也就是说基类友元不能访问子类私有和保护成员 。 二继承与静态成员 基类定义了static静态成员则整个继承体系里面只有一个这样的成员。无论派生出多少个子类都只有一个static成员实例 。 class Person { public:Person() { _count; } protected:string _name; // 姓名 public:static int _count; // 统计人的个数。 };int Person::_count 0;class Student : public Person { protected:int _stuNum; // 学号 };int main() {Person p;Student s;cout Person::_count endl;cout Student::_count endl;return 0; }在上述代码中此时Student和Person里面的_count是同一个静态变量_count存在静态区,不是单独的存在各个对象里是属于整个继承体系了。 三复杂的菱形继承及菱形虚拟继承 1.单继承一个子类只有一个直接父类时称这个继承关系为单继承。 2.多继承一个子类有两个或以上直接父类时称这个继承关系为多继承。 3.菱形继承菱形继承是多继承的一种特殊情况。 菱形继承的问题从下面的对象成员模型构造可以看出菱形继承有数据冗余和二义性的问题。 class Person { public:string _name; // 姓名int _id;int _tel;string _adress; };class Student : public Person { protected:int _num; //学号 };class Teacher : public Person { protected:int _id; // 职工编号 };class Assistant : public Student, public Teacher { protected:string _majorCourse; // 主修课程 };int main() {//数据冗余和二义性Assistant a;//a._name 小李;//a._name 李老师;//1.指定类域a.Student::_name 小李;a.Teacher::_name 李老师; }由监视窗口得出数据的冗余 在Assistant的对象中Person成员会有两份。 并且在访问成员变量时指定不明确有二义性 4.解决方法 4.1 访问成员变量有二义性时可指定类域。 int main() {//继承代码续接上……//1.指定类域a.Student::_name 小李;a.Teacher::_name 李老师; }4.2 虚拟继承可以解决菱形继承的二义性和数据冗余的问题 虚拟继承在继承会造成冗余的类的那里加上关键字 virtual。 class Person { public:string _name; // 姓名int _id;int _tel;string _adress; };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; // 主修课程 };int main() {Assistant a;a.Student::_name 小李;a._name 小李;a._name 李老师;return 0; }四继承的总结和反思 1.很多人说C语法复杂其实多继承就是一个体现。有了多继承就存在菱形继承有了菱形继承就有菱形虚拟继承底层实现就很复杂。 2.多继承可以认为是C的缺陷之一很多后来的OO语言都没有多继承如Java。 3.继承和组合 (1) public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。 (2) 组合是一种has-a的关系。假设B组合了A每个B对象中都有一个A对象。 (3) 优先使用对象组合而不是类继承。 (4) 继承可以直接访问基类的protected 和 public成员。在继承方式中基类的内部细节对子类可见 。继承一定程度破坏了基类的封装类的改变对派生类有很大的影响。派生类和基类间的依赖关系很强耦合度高。 (5) 组合只能访问public成员。组合类之间没有很强的依赖关系耦合度低。优先使用对象组合有助于你保持每个类被封装。
http://www.hkea.cn/news/14476434/

相关文章:

  • 网络销售有限公司网站服务器怎么优化
  • 思勤传媒网站建设公司东莞网站设计在哪里
  • 江西省地图网站建设优化去哪学
  • asp 课程教学网站开发缩短链接的网站
  • 公司网站建设都需要什么内容网站建设中山优化
  • 新公司做网站做网站资源推荐
  • 上海网站建设推荐q479185700顶你百度电脑网页版入口
  • 服务器网站后台登陆密码黄框显示wordpress装修模板
  • 用哪个程序做网站收录好6商丘网站建设价格
  • 哈尔滨营销型网站制作无锡网络优化推广公司
  • 365网站建设建设淘宝网站的人员组织
  • 个人网站建设素材企业网站模板 网页模板
  • 杭州网站开发平均工资南昌网站建设公司网站建设公司
  • 建筑工程 技术支持 东莞网站建设wordpress旅游网模板
  • 中国flash网站模板中心村建站是什么部门
  • 西安做网站公司有哪些企业网站制作公司排名
  • 建设注册中心网站自己怎么注册网站模板
  • 网站页面设计尺寸建设部或国土资源管理局的网站
  • 最佳配色网站个人交互网站
  • 网站开发发展现状it项目网站开发的需求文档
  • 永清网站建设做网站编辑的发展方向晋升
  • 网站转移北郊网站建设
  • 怎么做一键添加信任网站猎场第几集做的网站推广
  • 做网站时兼容分辨率wordpress安全锁
  • php靓号网站源码找游戏的手游平台
  • 做网站和推广工资多少钱手机网站一定要与pc网站一样
  • 网站权重怎么做成都网站建设制作公司
  • dede网站错位做视频网站服务器
  • 网站介绍词如何套用别人网站模板
  • 网站流量太高 如何做负载均衡网站中的给我留言怎么做