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

网站平台建设合作协议手机网页打不开

网站平台建设合作协议,手机网页打不开,个人网站推广软件,vc 做网站源码引子#xff1a; 继承是面向对象三大特性之一、有些类与类之间存在特殊的关系#xff0c;例如下图中: 我们发现#xff0c;定义这些类时#xff0c;下级别的成员除了拥有上一级的共性#xff0c;还有自己的特性。 这个时候我们就可以考虑利用继承的技术#xff0c;减少…  引子  继承是面向对象三大特性之一、有些类与类之间存在特殊的关系例如下图中: 我们发现定义这些类时下级别的成员除了拥有上一级的共性还有自己的特性。 这个时候我们就可以考虑利用继承的技术减少重复代码。 一.继承基本语法  语法class 子类:继承方式 父类  优点减少重复代码 子类也叫派生类父类也叫基类 代码:  #include iostream using namespace std; class person { //定义person基类 public:int age;int height;int weight;string name;void show() {cout age age endl;cout height height endl;cout weight weight endl;cout name name endl;} };class women :public person { public:string xingbie;void shou_x() {cout xingbie xingbieendl;} };void fun() {women p;p.age 18;p.height 180;p.name tom;p.weight 160;p.xingbie 女;p.show();p.shou_x(); } int main() {fun();return 0; } 派生类中的成员包含两大部分: 1.类是从基类继承过来的-类是自己增加的成员。 2.从基类继承过过来的表现其共性而新增的成员体现了其个性。 二.继承方式 继承方式 public     公有继承 protected保护继承 private    私有继承 代码 #include iostream using namespace std; class father { public:int A; protected:int B; private:int C; };class son1 :public father { //公有继承 public:void fun() {cout A A endl; //公有变为公有cout B B endl; //保护变为保护//cout C C endl;//私有不可访问} };class son2 :protected father { //保护继承 public:void fun() {cout A A endl; //公有变为保护cout B B endl; //保护变为保护//cout C C endl;//私有不可访问} };class son3 :private father { //私有继承 public:void fun() {cout A A endl; //公有变为私有cout B B endl; //保护变为私有//cout C C endl;//私有不可访问} };void fun() {son1 p1;son2 p2;son3 p3;p1.A 10;p1.fun(); } int main() {fun();return 0; } 私有成员全不见公不变保全保私全私。 三.继承中的对象模型 继承中基类私有变量虽然访问不到但是已经被继承只是被隐藏了。 代码 #include iostream using namespace std; class father { public:int A; protected:int B; private:int C; }; class son :private father { public:int age; }; int main() {cout sizeof(son) endl;return 0; } 四.继承构造和析构顺序 子类继承父类时会先创建一个父类。析构的顺序和构造顺序正好相反。 代码 #include iostream using namespace std; class father { public:father() {cout father的构造哈数 endl;}~father() {cout father的析构函数 endl;} }; class son :public father { public:son() {cout son的构造函数 endl;}~son() {cout son的析构函数 endl;} }; void fun() {son a; } int main() {fun();return 0; } 五.继承同名成员处理方式 当基类中的成员变量以及成员函数和派生类的成员变量和函数重名时基类默认调用派生类的成员函数和成员变量。要想调用基类的成员函数和成员变量需要加上基类的作用域 代码 #include iostream using namespace std; class father { public:int A;father() {A 999;}void fun() {cout father的fun调用 endl;}void fun(int a) {cout father的fun调用 a endl;} }; class son :public father{ public:int A;son() {A 99;}void fun() {cout son的fun调用 endl;}void fun(int a) {cout father的fun调用 a endl;} }; void fun() {son p;cout son p.A endl;cout father p.father::A endl;p.fun();p.fun(11);p.father::fun();p.father::fun(90); } int main() {fun();return 0; } 如果派生类中出现和基类重名的成员函数那么派生类会隐藏基类全部重名的成员函数。需要注意的是本来可以按照函数重载区分却被派生类隐藏的情况 代码  #include iostream using namespace std; class father { public:int A;father() {A 999;}void fun() {cout father的fun调用 endl;}void fun(int a,int b) {cout father的fun调用 a endl;} }; class son :public father{ public:int A;son() {A 99;}void fun() {cout son的fun调用 endl;} }; void fun() {son p;cout son p.A endl;cout father p.father::A endl;p.fun();p.fun();p.father::fun();//p.fun(90,89);//报错p.father::fun(89, 123); } int main() {fun();return 0; } 六.继承同名static成员处理方式 当重名的成员变量和函数是static时需要注意通过类名来调用的方式 代码 #include iostream using namespace std; class father { public:static int A;static void fun() {cout father的fun调用 endl;}void fun(int a) {cout father的fun调用 a endl;} }; int father::A10; //static成员变量类内声明类外定义 class son :public father { public:static int A;static void fun() {cout son的fun调用 endl;} }; int son::A 20; void fun() {son p;//1.利用对象调用成员变量和函数cout p.A endl;cout p.father::A endl;p.fun();p.father::fun();cout ************************** endl;//2.利用类名调用成员变量和函数cout son::A endl;cout father::A endl;cout son::father::A endl; son::fun();father::fun();son::father::fun(); //father::fun(10); //报错,此方法只能调用static类型} int main() {fun();return 0; } 七.多继承语法 C中允许一个类继承多个类 语法: class子类∶继承方式父类1继承方式父类2... 多继承可能会引发父类中有同名成员出现需要加作用域区分 C实际开发中不建议用多继承 代码 #include iostream using namespace std; class base1 { public:int A;base1() {A 10;cout base1构造函数调用 endl;} };class base2 { public:int A;base2() {A 20;cout base2构造函数调用 endl;} };class son :public base1, public base2 { public:int B;int C;son() {B 100;C 200;cout son构造函数调用 endl;} };void fun() {son b;cout b.base1::A endl;cout b.base2::A endl;cout b.B endl;cout b.C endl; } int main() {fun();return 0; }注意构造函数的调用顺序父亲1先调用父亲2再调用最后son调用 总结:多继承中如果父类中出现了同名情况子类使用时候要加作用域。 八.菱形继承 菱形继承概念: 两个派生类继承同一个基类 又有某个类同时继承者两个派生类 这种继承被称为菱形继承或者钻石继承 1.羊继承了动物的数据驼同样继承了动物的数据当羊驼使用数据时就会产生二义性。 2.羊驼将动物的数据继承了两份其实我们应该清楚这份数据我们只需要—份就可以。 代码 #include iostream using namespace std; class dongwu { public:int A; }; class yang :public dongwu {}; class tuo:public dongwu {}; class son :public tuo, public yang {}; void fun() {son p;p.yang::A 100;p.tuo::A 200;//当菱形继承两个父亲拥有相同名的成员时要加作用域加以区分cout p.yang::A endl;cout p.tuo::A endl; } int main() {fun();return 0; } 此时的继承情况是,这样的。  利用虚继承可以解决菱形继承的问题两份相同的数据浪费内存 代码 #include iostream using namespace std; class dongwu { public:int A; }; //virtual虚继承dongwu称为虚基类 class yang :virtual public dongwu {}; class tuo:virtual public dongwu {}; class son :public tuo, public yang {}; void fun() {son p;yang p1;tuo p2;p.yang::A 100;p.tuo::A 200;p1.A 90;p2.A 190;//当菱形继承两个父亲拥有相同名的成员时要加作用域加以区分cout p.yang::A endl;cout p.tuo::A endl;cout p1.A endl;cout p2.A endl;} int main() {fun();return 0; } 继承时只继承一份此时son继承的是两个虚基类表的指针虚基类表中存储的是到成员的偏移量。 总结: ·菱形继承带来的主要问题是子类继承两份相同的数据导致资源浪费以及毫无意义·利用虚继承可以解决菱形继承问题
http://wiki.neutronadmin.com/news/262242/

相关文章:

  • 北京顺义去哪找做网站的网站运维公司有哪些
  • 组建网站手机端网站建设步骤
  • 安卓手机网站开发怎样做私人网站
  • 佛山专业做网站公司上海的公司排行榜
  • 外贸开源网站爱山东app下载注册流程
  • 宝和网站建设营销策略有哪些4种
  • 算命购物网站建设附近小程序定制公司
  • 潍坊网站中国建设银行官网站大同
  • 如何做一家门户网站公司注册公司哪个好
  • 邢台做网站找谁建筑业大数据服务平台
  • 贵港网站建设网站建设 2015年11月
  • 外贸自建站的推广方式seo软文推广工具
  • 怎样用模板做网站潍坊兆通网站建设
  • 晋城市公共事业建设局网站教你做吃的网站
  • 网站建设 珠海网站建设工作分解结构图或表
  • 网站建设学院江苏五星建设集团有限公司网站
  • 会员制网站搭建wordpress做汽配外贸是在哪个网站做
  • 专门做评测的网站有哪些404 没有找到网站 试试申请收录吧
  • 摇一摇抽签用什么网站做房地产网站开发商
  • 门户网站 模板阳江市招聘最新招聘
  • 网站维护主要是做哪些网站建设公司下载
  • 网站建设兰州天水网站建设公司
  • 网站运行需求WordPress发展史
  • 网站生成器apk怎么做应用软件设计过程
  • 广州网站制作开发环保网站查询碾米是否做备案
  • 网站seo排名优化软件数据分析网
  • 如何搭建网站杭州百度seo优化
  • 做网站被攻击谁的责任网站建设 技术方案模板
  • 网站建设企业合作邀请函做任务打字赚钱的网站
  • 合肥网站建设推荐 晨飞网络公司网站做论坛