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

免费建设手机网站杭州 网站定制

免费建设手机网站,杭州 网站定制,南昌优易科 网站建设,做网站用哪个版本的eclipse1.多态 1.1多态的概念 多态(polymorphism)的概念#xff1a;通俗来说#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)#xff0c;这⾥我们重点讲运⾏时多态#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)…1.多态 1.1多态的概念 多态(polymorphism)的概念通俗来说就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)这⾥我们重点讲运⾏时多态编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)主要就是我们前⾯讲的函数重载和函数模板他们传不同类型的参数就可以调⽤不同的 函数通过参数不同达到多种形态之所以叫编译时多态是因为他们实参传给形参的参数匹配是在 编译时完成的我们把编译时⼀般归为静态运⾏时归为动态。 运⾏时多态具体点就是去完成某个⾏为(函数)可以传不同的对象就会完成不同的⾏为就达到多种 形态。⽐如买票这个⾏为当普通⼈买票时是全价买票学⽣买票时是优惠买票(5折或7折)军 ⼈买票时是优先买票。再⽐如同样是动物叫的⼀个⾏为(函数)传猫对象过去就是”(^ω^) 喵“传狗对象过去就是汪汪。 2.多态的的定义和实现 多态是一个继承关系下的类对象去调用同一函数产生了不同的行为。 2.1.1 实现多态的必须两个重要条件 必须是基类的指针或者引⽤调⽤虚函数 被调⽤的函数必须是虚函数并且完成了虚函数重写/覆盖 3虚函数        类函数成员前面加上virtual修饰这个函数就是虚函数。非成员函数不能加virtual修饰 class Person{public:virtual void BuyTicket() { cout 买票-全价 endl;}}; 3.1.1虚函数的重写 虚函数的重写/覆盖派⽣类中有⼀个跟基类完全相同的虚函数(即派⽣类虚函数与基类虚函数的返回值 类型、函数名字、参数列表完全相同)称派⽣类的虚函数重写了基类的虚函数。 注意在重写基类虚函数时派⽣类的虚函数在不加virtual关键字时虽然也可以构成重写(因为继承 后基类的虚函数被继承下来了在派⽣类依旧保持虚函数属性)但是该种写法不是很规范不建议这样 使⽤不过在考试选择题中经常会故意买这个坑让你判断是否构成多态。 class Person { public: virtual void BuyTicket() { cout 买票-全价 endl; } }; class Student : public Person { public: virtual void BuyTicket() { cout 买票-打折 endl; } }; void Func(Person* ptr) { // 这⾥可以看到虽然都是Person指针Ptr在调⽤BuyTicket // 但是跟ptr没关系⽽是由ptr指向的对象决定的。 ptr-BuyTicket(); } int main() { Person ps; Student st; Func(ps); Func(st); return 0; } 4.析构函数的重写 基类的析构函数为虚函数此时派⽣类析构函数只要定义⽆论是否加virtual关键字都与基类的析 构函数构成重写虽然基类与派⽣类析构函数名字不同看起来不符合重写的规则实际上编译器对析 构函数的名称做了特殊处理编译后析构函数的名称统⼀处理成destructor所以基类的析构函数加了 vialtual修饰派⽣类的析构函数就构成重写。 下⾯的代码我们可以看到如果~A()不加virtual那么delete p2时只调⽤的A的析构函数没有调⽤ B的析构函数就会导致内存泄漏问题因为~B()中在释放资源。 class A { public: virtual ~A() { cout ~A() endl; } }; class B : public A { public: ~B() { cout ~B()-delete:_p endl; delete _p; } protected: int* _p new int[10]; }; // 只有派⽣类Student的析构函数重写了Person的析构函数下⾯的delete对象调⽤析构函数才能 构成多态才能保证p1和p2指向的对象正确的调⽤析构函数。 int main() { A* p1 new A; A* p2 new B; delete p1; delete p2; return 0; } 今天的多态就说到这里可能不是很全面有问题大家可以指出来谢谢大家
http://www.w-s-a.com/news/897528/

相关文章:

  • 怎样分析一个网站做的好坏重庆长寿网站设计公司哪家专业
  • 百度助手app下载苏州seo关键词优化排名
  • 17网站一起做 佛山诸城网站建设多少钱
  • 郑州网站建设培训学校泉州做网站设计公司
  • 西峡做网站深圳建筑工务署官网
  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做
  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程
  • 建设银行管方网站官网最新版cmsv6
  • 网站开发工程师需要会写什么深圳网站(建设信科网络)
  • 台州网站搭建网站建设需求计划
  • 网站app免费下载软件大全大连百度推广哪家好