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

网站建设公司上海做网站公司东营建设局官网

网站建设公司上海做网站公司,东营建设局官网,成都十大装修品牌装修公司,政务网站建设建议目录 1.什么是多态 2.多态的分类 3.对象转型 3.1 向上转型#xff1a; 3.2 向下转型#xff1a; 4.虚函数 1.什么是多态 生活中的多态#xff0c;是指的客观的事物在人脑中的主观体现。例如#xff0c;在路上看到⼀只哈士奇#xff0c;你可以看做是哈士奇#xf…目录 1.什么是多态 2.多态的分类  3.对象转型  3.1 向上转型 3.2 向下转型 4.虚函数  1.什么是多态 生活中的多态是指的客观的事物在人脑中的主观体现。例如在路上看到⼀只哈士奇你可以看做是哈士奇可以看做是狗也可以看做是动物。主观意识上的类别与客观存在的事物存在 is a 的关系的时候即形成了多态。         在程序中⼀个类的引用指向另外⼀个类的对象从而产生多种形态。当⼆者存在直接或者间接的继承关系时父类引用指向⼦类的对象即形成多态。         多态是面向对象三⼤特性之⼀记住继承是多态的前提如果类与类之间没有继承关系也不会存在多态。 2.多态的分类  c⽀持编译时多态(静态多态)和运行时多态(动态多态)运算符重载和函数重载就是编译时多态而派生类和虚函数实现运行时多态。         静态多态和动态多态的区别就是函数地址是早绑定(静态联编)还是晚绑定(动态联编)。如果函数的调用在编译阶段就可以确定函数的调用地址并产生代码就是静态多态(编译时多态)就是说地址是早绑定的。而如果函数的调用地址不能编译不能在编译期间确定而需要在运行时才能决定这这就属于晚绑定(动态多态,运行时多态)。 3.对象转型  对象转型是指将一个类的对象视为另一个类的对象的过程。在C中对象转型主要涉及到向上转型和向下转型两种操作。 3.1 向上转型         向上转型是将派生类的对象引用或指针赋给基类的引用或指针的操作。这是一个安全的操作因为派生类的对象可以视为基类的对象但只能访问基类中的成员。向上转型的目的通常是实现多态性。 示例 class Animal { public:void speak() {cout Animal speaks. endl;} };class Dog : public Animal { public:void speak() {cout Dog barks. endl;} };int main() {Dog myDog;Animal myAnimal myDog; // 向上转型myAnimal.speak(); // 输出 Animal speaks.return 0; }在这个示例中myDog 是一个 Dog 类的对象但通过向上转型我们可以将它视为一个 Animal 类的对象。 3.2 向下转型         向下转型是将基类的对象引用或指针转换为派生类的对象引用或指针的操作。这是一个潜在的危险操作因为编译器不能保证基类对象实际上是一个派生类对象。因此在执行向下转型之前通常需要进行类型检查以确保安全。 示例 class Animal { public:virtual void speak() {cout Animal speaks. endl;} };class Dog : public Animal { public:void speak() override {cout Dog barks. endl;} };int main() {Animal myAnimal;Dog* myDog dynamic_castDog*(myAnimal); // 向下转型需要使用 dynamic_cast 并进行类型检查if (myDog) {myDog-speak(); // 输出 Dog barks.} else {cout Conversion failed. endl;}return 0; }在这个示例中我们使用 dynamic_cast 进行向下转型并在转型之前进行了类型检查以确保安全地调用 speak 函数。 4.虚函数  C动态多态性是通过虚函数来实现的虚函数允许⼦类派⽣类重新定义父类基类成员函数而子类派生类重新定义父类基类虚函数的做法称为覆盖(override)或者称为重写。对于特定的函数进行动态绑定C要求在基类中声明这个函数的时候使用virtual关键字动态绑定也就对virtual函数起作用。 1.为创建⼀个需要动态绑定的虚成员函数可以简单在这个函数声明前⾯加上virtual关键字定义时候不需要. 2.如果⼀个函数在基类中被声明为virtual那么在所有派生类中它都是virtual的. 3.在派生类中virtual函数的重定义称为重写(override). 4.virtual关键字只能修饰成员函数. 5.构造函数不能为虚函数 class Animal { public:// 将需要动态绑定的函数定义为虚函数virtual void bark() {cout Animal Bark endl;} }; class Dog : public Animal { public:// 在⼦类中重写虚函数void bark() override {cout Dog Bark endl;} }; int main() {// 将Dog对象转成⽗类的对象// 这⾥是向上转型Dog dog;Animal animal dog;// 向上转型后的对象调⽤⽗类中的函数dog.bark();animal.bark();return 0; }
http://www.hkea.cn/news/14431563/

相关文章:

  • 帝国cms做的网站深圳网站建设怎么样
  • 花店网站开发参考文献wordpress地图无插件下载
  • 一键安装网站运行环境全国企业信息系统网官网
  • wordpress更改登录地址深圳知名seo公司
  • 莆田网站建设多少钱中山seo排名
  • 溧阳做网站怎么判断一个公司是不是外包公司
  • 建个企业网站还是开个淘宝店休闲食品网站建设规划书
  • 乡村建设规划网站wordpress抖音
  • 南昌建站模板公司企业宣传片的拍摄
  • 厦门网站建设 智多星重庆市最新新闻
  • 网站深圳优化建设广西建设工程质量安全监督网站
  • 网站制作一键生成整站优化深圳
  • 郑州网站建设讯息qq企业邮箱登录入口
  • 搭建wap网站新手做网站应该注意什么
  • 网站蓝色导航栏代码动态图表制作软件
  • 外贸网站建站多少钱网站推广网站关键词排名怎么做
  • 网站开发项目有哪些软件技术适合女生学吗
  • 帮人家做网站怎么赚钱网络广告策划书范文
  • 哪个建站平台较好长链接转换成短链接
  • 东莞网站设计公司有哪些夹克定制公司
  • 江门cms模板建站网店店铺装修怎么做
  • 购物网站 后台模板深圳市住房和建设局网站怎么打不开了
  • 学做网站视频淘宝代运营公司一般怎么收费的
  • 杭州网站开发企业专做化妆品的网站
  • 网站管理教程中英文网站切换
  • 个人可以建门户网站吗江门seo网络推广
  • 浏览网站内下载文件学习网站开发心得体会
  • 做网站设计管理的专业衣柜全屋定制排名
  • 苏州网站优化公司3d网站建设方案
  • 做品牌网站哪个好用wordpress 提交表单