初学c++动态联编

先看一下什么是C++联编?

我觉得通俗的讲,用对象来访问类的成员函数就是静态联编。

那什么是动态联编:

一般是通过虚函数实现动态联编。

看一个动态联编的例子:

 

我比较懒,所以直接粘贴了MOOC视频的图片。

 看一个动态联编的例子:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 class Base
 6 {
 7     public:
 8         virtual void print()  //虚函数
 9         {
10             cout<<"Base..."<<endl;
11         }
12 };
13 
14 class Derive : public Base
15 {
16     public:
17         void print()           //虽然没有标注virtual,但是因为和基类中的虚函数函数同名,所以默认虚函数
18         {
19             cout<<"Derive..."<<endl;
20         }
21 };
22 
23 void display(Base* p)   //复制兼容原则,基类类型的指针也可以指向派生类。
24 {
25     p->print();
26 }
27 
28 int main()
29 {
30     Base a;
31     Derive b;
32     display(&a);  //调用基类的print函数
33     display(&b);   //调用派生类的print函数
34     return 0;
35 }
36 
37 //动态联编,可以定义基类的指针,指向派生类的时候可以调用其中的虚函数进行操作。

运行结果如下:

如有错误,欢迎批评指正哈。

原文地址:https://www.cnblogs.com/jeavenwong/p/8098453.html