赞
踩
多态,即多种状态(形态)。简单来说,我们可以将多态定义为消息以多种形式显示的能。
多态是以封装和继承为基础的。
C++ 多态分类及实现:
i. 重载多态(Ad-hoc Polymorphism,编译期):函数重载、运算符重载
ii. ⼦类型多态(Subtype Polymorphism,运⾏期):虚函数
iii. 参数多态性(Parametric Polymorphism,编译期):类模板、函数模板
iv. 强制多态(Coercion Polymorphism,编译期/运⾏期):基本类型转换、⾃定义类型转换
静态多态(早绑定)
函数重载
- class A
- {
- public:
- void do(int a);
- void do(int a, int b);
- };
动态多态(晚绑定)
虚函数:⽤ virtual 修饰成员函数,使其成为虚函数
注意:
简而言之,成员函数实例相关,静态函数类相关。虚函数,是一种特殊的成员函数,用来实现运行时多态。
静态成员函数,可以不通过对象来调用,没有隐藏的this指针。virtual函数一定要通过对象来调用,有隐藏的this指针。
所以,关键问题是
static成员没有this指针。static function 是静态决议(编译的时候就绑定了)
而virtual function 是动态决议的(运行时才绑定)
内联函数、构造函数、静态成员函数不可以定义为虚函数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。