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

初学c++动态联编-LMLPHP

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

那什么是动态联编:

初学c++动态联编-LMLPHP

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

初学c++动态联编-LMLPHP

看一个动态联编的例子:

初学c++动态联编-LMLPHP

初学c++动态联编-LMLPHP

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

初学c++动态联编-LMLPHP

初学c++动态联编-LMLPHP

看一个动态联编的例子:

 #include <iostream>
#include <string>
using namespace std; class Base
{
public:
virtual void print() //虚函数
{
cout<<"Base..."<<endl;
}
}; class Derive : public Base
{
public:
void print() //虽然没有标注virtual,但是因为和基类中的虚函数函数同名,所以默认虚函数
{
cout<<"Derive..."<<endl;
}
}; void display(Base* p) //复制兼容原则,基类类型的指针也可以指向派生类。
{
p->print();
} int main()
{
Base a;
Derive b;
display(&a); //调用基类的print函数
display(&b); //调用派生类的print函数
return ;
} //动态联编,可以定义基类的指针,指向派生类的时候可以调用其中的虚函数进行操作。

运行结果如下:

初学c++动态联编-LMLPHP

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

05-20 12:56