联编是指一个计算机程序自身彼此关联(使一个源程序经过编译、连接,成为一个可执行程序)的过程,在这个联编过程中,需要确定程序中的操作调用(函数调用)与执行该操作(函数)的代码段之间的映射关系,按照联编所进行的阶段不同,可分为静态联编和动态联编。
静态联编:调用函数和被调函数在程序编译时,他们在内存中的地址和映射关系已经确定好,
动态联编:内存和地址映射关系不确定,加virtual 为动态联编,自动识别派生对象,实现重载。
//虚函数实现多态
#include<iostream>
using namespace std;
class A
{
public:
virtual void print(){cout<<"a"<<endl;}
};
class B:public A
{
public:
void print(){cout<<"b"<<endl;}
};
class C:public A
{
public:
void print(){cout<<"c"<<endl;}
};
void main()
{
A a;
B b;
C c;
A *pa=&a; //把对象a的地址赋给指向基类A的指针pa
A *pb=&b; //把对象b的地址赋给指向基类A的指针pb
A *pc=&c; //把对象c的地址赋给指向基类A的指针pc
pa->print();
pb->print();
pc->print();
system("pause");
system("pause");
}