C++多态的精彩实现
文章平均质量分 97
C++ 多态分为静态多态和动态多态,其中静态多态包含了函数重载和模板,动态多态则是通过虚函数实现。
zwh1298454060
在一家自动驾驶领域的公司做中间件,希望我在CSDN记录自己的学习过程,也希望能够见证自己在技术上的成长。
展开
-
【C/C++ 多态的关键】【虚函数表】
介绍虚函数表转载 2023-11-14 22:27:31 · 103 阅读 · 0 评论 -
【C++关键字 virtual】
在C++的早期设计中,通过基类指针可以访问派生类的成员变量,这是由于派生类对象在内存中的布局是基类成员变量在前,派生类成员变量在后。因此,当我们使用基类指针指向派生类对象时,可以正常访问到派生类中从基类继承来的成员变量。然而,对于成员函数,情况就不同了。在编译时期,成员函数并不会被放入对象的内存空间中,而是存放在一块单独的内存区域,每个类只有一份成员函数的代码。当我们通过基类指针调用成员函数时,编译器会根据指针的静态类型(也就是基类类型)去查找对应的成员函数,而不是动态类型(也就是实际指向的派生类类型)。原创 2023-10-30 22:54:23 · 414 阅读 · 0 评论 -
【C++关键字 override】
如果派生类重载了基类中的同名函数,则该函数将成为派生类中的虚函数,可以通过调用基类中的函数来实现该函数的功能。因此,在C++中,override关键字是非常重要的一个特性,对于实现灵活的类型重载和抽象函数的使用非常有帮助。这可能会导致一些错误,例如如果派生类中的函数签名与基类中的虚函数不完全匹配,那么这个函数可能不会被视为重写,而编译器也不会报错。它可以帮助程序员避免一些常见的错误,例如误打误写导致的函数签名不匹配,以及在基类中添加或修改虚函数时忘记更新派生类中的函数等。转载 2023-10-25 19:56:51 · 280 阅读 · 0 评论