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 2023-07-27 11:27  廿陆  阅读(15)  评论(0)    收藏  举报

导航