C++静态关联和动态关联

作者: veaxen 分类: C/C++,笔试面试 发布时间: 2018-04-22 12:45

静态关联

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

关于函数重载调用在编译时就可以确定我们不难理解,这里稍微提一下虚函数的调用。

虚函数的调用不一定是只有在运行时才可以确定的,通过对象名调用虚函数,在编译时就可以确定所调用的函数。

AClass a;
a.func();       //func()是虚函数

其中a为对象名,编译时就可以确定调用的是哪个虚函数了。

动态关联

在运行时,基类指针变量指向了某个类对象,然后通过这个基类指针去调用虚函数。由于是在运行时把虚函数与对象“绑定”在一起, 因此,此过程称为动态关联。由于动态关联是在编译后运行阶段进行的,所以又称为滞后关联。

关于动态关联的重点在于通过“基类指针去调用虚函数”!由于是通过类指针去调用虚函数,所以编译器在编译阶段没有办法确定要调用的是哪一个函数,只能在运行时通过虚函数表决定调用哪个虚函数。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.