C++ 静态联编和动态联编初认识

多态性:

  1. 静态联编多态性(编译时的多态性)通过函数,运算符的重载实现的(系统根据形参的个数来实现编译的多态性)
  2. 动态联编多态性(运行时的多态性)通过继承,虚函数(当运行时才能实现对象与函数的联编)C++规定:动态联编是在虚函数的支持下实现的

           条件:指向派生类对象的基类指针或者引用派生类对象的基类引用(调用虚函数)

动态联编:

 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;若要深入弄懂链表,必须学习数据结构和汇编,

其实虚函数的本质就是了个数据结构。也就是虚函数

posted @ 2015-12-10 23:37  MrPat  阅读(1094)  评论(0编辑  收藏  举报