【19空间1班】C++多态机制的实现

用户头像
来自上海海洋大学-刘歆宇发布于:2020-07-16 00:03:11
C++多态机制的实现 (1)重载:同一个类中同一个函数的不同实现,必须保证函数参数不同(类型,个数,顺序),本质上与多态无关。使用重载函数,编译器会根据函数的名称和参数定义来生成函数的内部标识符,保证每个函数的标识符是唯一的,这样在链接时就可以链接到对应的函数。重载属于静态绑定,在编译过程中就能确定调用哪一个函数,是早期绑定,与多态原理不同。 (2)覆盖:也称为重写,子类中对父类的同名函数同参数的重写,父类的函数必须设置为虚函数,这样保证使用基类指针或者引用指向不同的子类对象可以动态调用属于具体子类的方法而不是调用基类的方法,从而实现多态。 C++中 多态一般默认是指动态多态(通过类继承机制和虚函数机制实现),是在运行时确定的,在面向对象编程中直接被称为多态,而静态多态一般是指使用函数重载或者模板机制实现的。模板也允许将不同的特殊行为和单个泛化记号相关联,由于这种关联处理于编译期而非运行期,因此被称为“静态”。可以用来实现类型安全、运行高效的同质对象集合操作。C++ 的STL库大量使用了模板机制来实现,而并没有使用虚函数机制,属于静态多态。
点赞 (1) 回复
1F 用户头像
来自上海海洋大学-李嘉乐发布于:2020-07-16 18:55:04
把这一块总结得真好!
加载更多
点击图片
取消
回复
2F 用户头像
来自上海海洋大学-柏彦阳发布于:2020-07-20 18:02:08
很厉害的总结
加载更多
点击图片
取消
回复
3F 用户头像
来自上海海洋大学-张雨晴发布于:2020-07-20 18:04:39
覆盖:也称为重写,子类中对父类的同名函数同参数的重写,父类的函数必须设置为虚函数,这样保证使用基类指针或者引用指向不同的子类对象可以动态调用属于具体子类的方法而不是调用基类的方法,从而实现多态。 C++中 多态一般默认是指动态多态(通过类继承机制和虚函数机制实现),是在运行时确定的,在面向对象编程中直接被称为多态,而静态多态一般是指使用函数重载或者模板机制实现的。
加载更多
点击图片
取消
回复
4F 用户头像
来自上海海洋大学-孙杨博发布于:2020-07-20 18:54:35

总结不错!

加载更多
点击图片
取消
回复
5F 用户头像
来自上海海洋大学-李佳杭发布于:2020-07-20 20:38:49
感谢分享
加载更多
点击图片
取消
回复
6F 用户头像
来自上海海洋大学-生蕙语发布于:2020-07-20 20:40:14
学到了
加载更多
点击图片
取消
回复
发布回复
点击图片