虚函数与多态[C++]
2011-10-02 21:38
288 查看
引用和指针的静态类型(编译时可知的引用类型或指针类型)和动态类型(指针或引用所绑定的对象的类型,运行时获知)可以不同。因此,可以用基类的指针或引用指向派生类的对象,再通过基类的指针或引用来调用虚函数,所运行的虚函数是引用或指针所指向的对象所属类型定义的版本。
C++函数默认不使用动态绑定,除非满足两个条件:1.只有虚函数才能进行动态绑定。 2.必须通过基类类型的引用或指针进行函数调用。
C++函数默认不使用动态绑定,除非满足两个条件:1.只有虚函数才能进行动态绑定。 2.必须通过基类类型的引用或指针进行函数调用。
class Base{ public: Base(); virtual void fun(){cout<<"fun of base"<<endl;} }; class Derived1{ public: Derived(); void fun(){cout<<"fun of derived1"<<endl;} }; class Derived2{ public: Derived(); void fun(){cout<<"fun of derived2"<<endl;} }; int main() { Base * pb; pb = new Derived1();//fun of derived1 pb->fun(); pb = new Derived2();//fun of derived2 pb->fun(); }
相关文章推荐
- C/C++指针,多态,函数参数,面向对象抽象
- C++手稿:虚函数与多态
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- C++多态:虚函数、指针、虚函数表
- C++学习摘要之四:虚函数和多态
- 【一问一答】c++基础知识 ||类,模版,多态,虚函数
- 看懂下面C++代码才说你理解了C++多态虚函数!
- 【C++的探索路14】多态与虚函数之基础篇
- C++中的多态与虚函数的内部实现
- c++_4: 多态_1_虚函数的定义
- C++中的虚函数,多态,覆盖隐藏重载
- 看懂下面C++代码才说你理解了C++多态虚函数!
- C++多态--虚函数virtual及override
- C++中动多态实现之虚函数与虚表指针
- 对C++中虚函数、纯虚函数在多态中作用的一点认识
- 从内存模型的角度来看C++多态实现机制和C++析构函数为什么要用虚函数
- 看懂下面C++代码才说你理解了C++多态虚函数!
- 【C++的探索路15】多态与虚函数之高级篇
- C++:多态之虚函数
- 【C++的探索路16】多态与虚函数之练习篇