C++Note 多态的原理

加上  virtual  关键字  sizeof(类)为一个指针大小 4个字节或者8个字节(主要是32  64对指针的划分大小)

没有  virtual  关键字  sizeof(类)为1个字节大小  为空  仅是一个地址的大小  类和类内函数分开存储

子类仅完全继承父类函数  未发生同名情况

 子类与父类函数重名  且父类函数加了关键字 virtual  子类重新父类的虚函数 子类中 Animcal::speak被替换为 Cat::speak 

当父类的指针或者引用指向子类对象时候,发生多态

Animal &animal = cat;

即从  animal.speak(); 指向虚函数表 指向 cat.speak() 

Cat类未发生重写前:父类加上virtual 但子类没有与父类同名函数

Cat发生重写后:父类加上virtual 且 子类有和父类同名函数  

posted on   廿陆  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示