标签:
多态性:
条件:指向派生类对象的基类指针或者引用派生类对象的基类引用(调用虚函数)
动态联编:
1 #include <iostream> 2 using namespace std; 3 class shape{ 4 public: 5 void virtual draw(){cout<<"I am shape"<<endl;}//这里设定了draw是虚函数 6 void fun(){draw();} 7 }; 8 class circle:public shape{ 9 public: 10 void draw(){cout<<"I am circle"<<endl;}//虽然没有说明circle类中的draw是虚函数,但是circle其实继承了virtual性质 11 }; 12 void main(){ 13 circle oneshape; 14 oneshape.fun(); 15 }
若没有virtual ,程序就会输出I am circle,因为有了虚函数进行了绑定,若没有,输出为 I am shape;若要深入弄懂链表,必须学习数据结构和汇编,
其实虚函数的本质就是搞了个数据结构。也就是虚函数表
标签:
原文地址:http://www.cnblogs.com/biyongyao/p/5037732.html