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

网站建设硬件和软件技术环境配置签约做网站模板

网站建设硬件和软件技术环境配置,签约做网站模板,郑州专业网站建设搭建公司,青海省建设厅勘察设计备案网站1.前置知识点 多态是面向对象的三大特性之一 多态分为两类 静态多态#xff1a;函数重载和运算符重载都属于静态多态#xff0c;复用函数名动态多态#xff1a;派生类和虚函数实现运行时多态 静态多态和动态多态的区别 静态多态的函数地址早绑定-----编译阶段确定函数地…1.前置知识点 多态是面向对象的三大特性之一 多态分为两类 静态多态函数重载和运算符重载都属于静态多态复用函数名动态多态派生类和虚函数实现运行时多态 静态多态和动态多态的区别 静态多态的函数地址早绑定-----编译阶段确定函数地址动态多态的函数地址晚绑定-----运行阶段确定函数地址 动态多态必须满足的条件 有继承关系子类重写父类的虚函数 1.1多态使用 父类指针或者引用指向子类对象 1.2 重写概念 重写函数名 参数列表 函数返回值类型 完全一致 1.3 多态的好处 1.组织结构清晰2.可读性比较强3.对于前期和后期的扩展和维护性比较高 1.4 测试案例 1.4.1 静态多态的函数地址早绑定-----编译阶段确定函数地址 #includeiostream using namespace std;//子类可以转父类父类不能转子类 //动物类 class Animal {public:void speak(){cout 动物在说话 endl;}};//猫类 class Cat :public Animal { public:void speak(){cout 猫在说话 endl;}};//执行说话的函数 //地址早绑定在编译阶段就确定了函数地址 void doSpeak(Animal animal)//Animal animalcat {animal.speak();}void test01() {Cat cat;doSpeak(cat);}//分别利用普通写法和多态技术实现计算器 //普通写法class Calculator int main() {test01();system(pause);return 0;} 1.4.2动态多态的函数地址晚绑定-----运行阶段确定函数地址 #includeiostream using namespace std;//子类可以转父类父类不能转子类 //动物类 class Animal {public:virtual void speak(){cout 动物在说话 endl;}};//猫类 class Cat :public Animal { public:void speak(){cout 猫在说话 endl;}};//执行说话的函数 //地址早绑定在编译阶段就确定了函数地址 void doSpeak(Animal animal)//Animal animalcat {animal.speak();}void test01() {Cat cat;doSpeak(cat);}//分别利用普通写法和多态技术实现计算器 //普通写法class Calculator int main() {test01();system(pause);return 0;} 结果 2. 设计实现两个操作数进行运算的计算器类 案例描述: 分别利用普通写法和多态技术设计实现两个操作数进行运算的计算器类 多态的优点: 代码组织结构清晰可读性强利于前期和后期的扩展以及维护 对比传统写法和使用多态 在真实开发中提倡开闭原则开闭原则对扩展进行开放对修改进行关闭 2.1传统写法 #includeiostream #includestring using namespace std;//子类可以转父类父类不能转子类 //动物类 //class Animal { // //public: // virtual void speak() // { // // cout 动物在说话 endl; // // } // //}; // // 猫类 //class Cat :public Animal { //public: // virtual void speak() // { // cout 猫在说话 endl; // } // //}; // 执行说话的函数 地址早绑定在编译阶段就确定了函数地址 //void doSpeak(Animal animal)//Animal animalcat //{ // // animal.speak(); // //} // // //void test01() //{ // Cat cat; // doSpeak(cat); // // // //}//多态的好处 //1.组织结构清晰 //2.可读性比较强 //3.对于前期和后期的扩展和维护性比较高//分别利用普通写法和多态技术实现计算器 //普通写法class Calculator---不利于维护 class Calculator {//实现两个操作数运算 public:int getResult(string opt)//传入操作符{if (opt ){return m_Num1 m_Num2;}else if (opt -){return m_Num1 - m_Num2;}else if (opt *){return m_Num1 * m_Num2;}}int m_Num1;int m_Num2;};//测试案例void test01() {//创建计算器对象Calculator c;c.m_Num1 10;c.m_Num2 20;cout c.m_Num1 c.m_Num2 c.getResult() endl;}int main() {test01();system(pause);return 0;} 2.2 使用多态实现计算器类 #includeiostream #includestring using namespace std;//子类可以转父类父类不能转子类 //动物类 //class Animal { // //public: // virtual void speak() // { // // cout 动物在说话 endl; // // } // //}; // // 猫类 //class Cat :public Animal { //public: // virtual void speak() // { // cout 猫在说话 endl; // } // //}; // 执行说话的函数 地址早绑定在编译阶段就确定了函数地址 //void doSpeak(Animal animal)//Animal animalcat //{ // // animal.speak(); // //} // // //void test01() //{ // Cat cat; // doSpeak(cat); // // // //}//多态的好处 //1.组织结构清晰 //2.可读性比较强 //3.对于前期和后期的扩展和维护性比较高//分别利用普通写法和多态技术实现计算器 //普通写法class Calculator class Calculator {//实现两个操作数运算 public:int getResult(string opt)//传入操作符{if (opt ){return m_Num1 m_Num2;}else if (opt -){return m_Num1 - m_Num2;}else if (opt *){return m_Num1 * m_Num2;}return -1;}int m_Num1;int m_Num2;};//测试案例void test01() {//创建计算器对象Calculator c;c.m_Num1 10;c.m_Num2 20;cout c.m_Num1 c.m_Num2 c.getResult() endl;}//利用多态实现计算器 //实现计算器抽象类 class AbstractCalculator {public:int m_Num1;int m_Num2;virtual int getResult()//在父类虚函数中不实现任何功能{return 0;}};//设计加法计算器类 class AddCalculator :public AbstractCalculator {public:virtual int getResult()//在父类虚函数中不实现任何功能{return m_Num1 m_Num2;}}; //设计减法计算器类class SubCalculator :public AbstractCalculator {public:virtual int getResult()//在父类虚函数中不实现任何功能{return m_Num1 - m_Num2;}};//设计乘法计算器类 class MultCalculator :public AbstractCalculator {public:virtual int getResult()//在父类虚函数中不实现任何功能{return m_Num1 * m_Num2;}};void test02() {//多态使用条件//父类指针或者引用指向子类的对象//1.加法运算AbstractCalculator *ptr new AddCalculator;//C无参构造可以省略()ptr-m_Num1 10;ptr-m_Num2 200;cout ptr-m_Num1 ptr-m_Num2 ptr-getResult() endl;delete ptr;//释放堆区数据//2.减法运算ptr new SubCalculator;ptr-m_Num1 10;ptr-m_Num2 200;cout ptr-m_Num1 - ptr-m_Num2 ptr-getResult() endl;delete ptr;//释放数据//3.乘法运算ptr new MultCalculator;ptr-m_Num1 100;ptr-m_Num2 200;cout ptr-m_Num1 * ptr-m_Num2 ptr-getResult() endl;delete ptr;//释放数据}int main() {//test01();test02();system(pause);return 0;} 结果
http://www.w-s-a.com/news/153601/

相关文章:

  • 教育网站建设的素材手机app制作流程
  • 免费行情软件网站大全下载网站备案查询
  • flex网站模板wordpress实时预览
  • 建设银行网站模板为什么企业要建设自己的企业文化
  • 网站建设必知免费手机网站建站系统
  • ssh可以做wap网站么嘉兴seo排名
  • 站内优化包括哪些帝国做企业网站
  • 做网站seo赚钱吗网络维护和故障维修
  • 企业网站可以自己做摄影网站开发背景怎么写
  • 网站百度指数seo最好的工具
  • 宝安专业网站建设推荐设计感强的网站
  • 网站建设 6万元北京知名的品牌设计公司
  • 网站建设的总体需求是什么vmware 下wordpress
  • 光谷网站建设请检查网络
  • 申请建设网站的报告书商务网站开发课程体会
  • 网站开发实训总结致谢群晖wordpress设置
  • 关于酒店网站建设的摘要天津市建设工程信息网官网首页
  • 网站alexa排名查询手机网站制作器
  • 建设小辣猫的网站电子毕业设计网站建设
  • 询广西南宁网站运营礼品定制
  • 建筑公司网站作用免费查看招标信息的网站
  • 建筑设计公司名字起名大全html网站 怎么做seo
  • 网站群建设模板迁移原站迁移pc巩义网站建设案例课堂
  • 烟台高端网站开发wordpress 设置权限
  • 中小企业网站制作流程网站开发和设计人员的岗位要求
  • 公司网站建设多少费用河北城乡建设官网站
  • 国科联创网站建设广告传媒公司招聘信息
  • 网站后台文章删了 怎么前台还有一级做爰片软件网站
  • 辽宁省建设注册中心网站wordpress 博客插件
  • 做电商看的网站有哪些网站建设需求策划书