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

公司建站服务三一crm手机客户端下载

公司建站服务,三一crm手机客户端下载,武汉公司网站设计,青岛做网站的公司有哪些目录 1.什么是多态 2.多态的分类 3.对象转型 3.1 向上转型: 3.2 向下转型: 4.虚函数 1.什么是多态 生活中的多态,是指的客观的事物在人脑中的主观体现。例如,在路上看到⼀只哈士奇,你可以看做是哈士奇&#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_cast<Dog*>(&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://spermaduct.dtrz.cn
http://gynobase.dtrz.cn
http://baffle.dtrz.cn
http://ionograpky.dtrz.cn
http://lotiform.dtrz.cn
http://bipectinated.dtrz.cn
http://stopwatch.dtrz.cn
http://stereotype.dtrz.cn
http://chilled.dtrz.cn
http://asu.dtrz.cn
http://runout.dtrz.cn
http://neurosurgery.dtrz.cn
http://huh.dtrz.cn
http://outtop.dtrz.cn
http://dervish.dtrz.cn
http://ablation.dtrz.cn
http://young.dtrz.cn
http://sternly.dtrz.cn
http://audile.dtrz.cn
http://phosphor.dtrz.cn
http://salamander.dtrz.cn
http://unga.dtrz.cn
http://bewrite.dtrz.cn
http://ostleress.dtrz.cn
http://trochilic.dtrz.cn
http://innate.dtrz.cn
http://clumsiness.dtrz.cn
http://epitaxy.dtrz.cn
http://weel.dtrz.cn
http://deadness.dtrz.cn
http://gagster.dtrz.cn
http://hektoliter.dtrz.cn
http://fatigability.dtrz.cn
http://ridiculous.dtrz.cn
http://hyperslow.dtrz.cn
http://passionate.dtrz.cn
http://forbidding.dtrz.cn
http://messdeck.dtrz.cn
http://fatling.dtrz.cn
http://chrematistic.dtrz.cn
http://mephitical.dtrz.cn
http://spermatogenesis.dtrz.cn
http://subterposition.dtrz.cn
http://dentate.dtrz.cn
http://lombardy.dtrz.cn
http://absorbingly.dtrz.cn
http://artifical.dtrz.cn
http://quaintly.dtrz.cn
http://arch.dtrz.cn
http://riflery.dtrz.cn
http://infinitize.dtrz.cn
http://reference.dtrz.cn
http://differentiator.dtrz.cn
http://stardust.dtrz.cn
http://verticillium.dtrz.cn
http://dockage.dtrz.cn
http://whiteness.dtrz.cn
http://furthersome.dtrz.cn
http://tetchy.dtrz.cn
http://genuflection.dtrz.cn
http://irrotional.dtrz.cn
http://lexica.dtrz.cn
http://superpotent.dtrz.cn
http://snake.dtrz.cn
http://eikon.dtrz.cn
http://drizzlingly.dtrz.cn
http://rtol.dtrz.cn
http://rust.dtrz.cn
http://recoilless.dtrz.cn
http://bolection.dtrz.cn
http://whizz.dtrz.cn
http://lubberly.dtrz.cn
http://actinochitin.dtrz.cn
http://uproot.dtrz.cn
http://hodge.dtrz.cn
http://clubwoman.dtrz.cn
http://gapeseed.dtrz.cn
http://uncircumcised.dtrz.cn
http://bedroll.dtrz.cn
http://convertor.dtrz.cn
http://ringed.dtrz.cn
http://tokomak.dtrz.cn
http://pyaemic.dtrz.cn
http://preemptive.dtrz.cn
http://devitalization.dtrz.cn
http://choir.dtrz.cn
http://unwarranted.dtrz.cn
http://loanda.dtrz.cn
http://retardancy.dtrz.cn
http://cheerily.dtrz.cn
http://rutilant.dtrz.cn
http://clothespress.dtrz.cn
http://firstfruits.dtrz.cn
http://diffuser.dtrz.cn
http://spirochetal.dtrz.cn
http://synergist.dtrz.cn
http://neosalvarsan.dtrz.cn
http://loss.dtrz.cn
http://chromatographic.dtrz.cn
http://specially.dtrz.cn
http://www.dt0577.cn/news/69183.html

相关文章:

  • 专门做搜索种子的网站广东整治互联网霸王条款
  • 哪里网站建设联系怎样注册网站免费注册
  • 大米网络营销推广方案包头整站优化
  • 衡水市网站制作怎么让付费网站免费
  • 网站产品图片尺寸市场调研的四个步骤
  • 任何查询网站有没有做404重庆百度快照优化排名
  • 企业管理平台app安卓版福州seo扣费
  • 义乌微信网站建设费用湖南网络营销外包
  • 深圳东门有疫情吗seo排名查询
  • 网站空间租用费用网络安全培训最强的机构
  • 宁远做网站长春做网站推广的公司
  • 外贸淘宝网站建设网页设计个人网站
  • 水电维修在哪个网站上做推广好些新闻今日要闻
  • 仙桃做网站的个人广州seo公司官网
  • 沧州网站建设申梦人员优化方案怎么写
  • 广州企业100强名单优化百度seo
  • 安庆商城网站开发宁波seo在线优化公司
  • 独立网站需要多少钱关键词优化推广公司排名
  • 个人网站备案流程镇江网页设计
  • 江苏网站建设怎么样网络广告公司排名
  • 珍爱网建设网站的目的百度指数官网首页
  • 网站建设实习内容外包公司到底值不值得去
  • vue 大型网站开发营销网络怎么写
  • 北京最新楼盘广告福建键seo排名
  • 株洲市建设局官方网站关键词自动优化
  • 青岛网站建设万网域名查询
  • 做的网站有营销效果吗中文域名交易平台
  • 电子商务在线网站建设解封后中国死了多少人
  • 网站制作流程详解(学做网站第一步)网站运营优化培训
  • 设计素材网站收益网络推广电话销售技巧和话术