C++中的静态关联与动态关联


一、关联:去顶调用的具体对象的过程称为关联,就是把一个函数名与一个类对象捆绑在一起,建立一个关联。一般来说,关联指把一个标识符和一个存储地址联系起来。

二、认知:

函数重载和通过对象名调用的虚函数,在编译时即可确定其调用的虚函数属于哪一个类,其过程称为静态关联,由于是在运行前进行关联的,所以又称为早期关联,函数重载属静态关联。

虚函数就是通过基类指针与虚函数的结合来实现多态性的。先定义一个指向基类的指针变量指向对应类的对象,再通过基类指针去调用虚函数。这样的调用方式编译系统在编译时是不能确定调用了哪一个类对象的虚函数的,因为编译只做静态语法检查,不能从语句形式上确定调用对象的。

当在编译系统在运行阶段确定关联关系时,指针可以先后指向不同的类对象,从而调用同族中不同类的虚函数,这种方式就是动态关联,也叫做滞后关联。

相关内容