c++知识点总结--静态与动态联编

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++知识点总结--静态与动态联编相关的知识,希望对你有一定的参考价值。

静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型
 
动态联编是指在程序执行的时候才将函数实现和函数调用关联,因此也叫运行时绑定或者晚绑定,动态联编对函数的选择不是基于指针或者引用,而是基于对象类型,不同的对象类型将做出不同的编译结果。C++中一般情况下联编也是静态联编,但是一旦涉及到多态和虚拟函数就必须要使用动态联编了。
 
类与类指针
父类指针引用父类对象,完全正常
子类指针引用子类对象,覆盖父类的同名函数
父类指针引用子类对象,只能引用父类中的函数
子类指针引用父类对象,子类不涉及内部数据的函数会调用成功,涉及内部数据的会调用成功,执行失败,内存原理,数据并未分配内存,代码是共享的
子类指针可以引用父类不重名的函数,只能通过父类对象引用父类同名函数
 
对类而言,数据是私有的,代码是共有的,
指针为空,指向一个类,可以直接调用方法
fu *pfu=new zi;
delete pfu;//内存泄漏
父类的析构函数声明为virtual(虚析构函数),可以避免这个问题
 

以上是关于c++知识点总结--静态与动态联编的主要内容,如果未能解决你的问题,请参考以下文章

C++JavaC# 多态知识总结

C++JavaC# 多态知识总结

c++知识点总结--静态与动态类型

c++后台开发面试常见知识点总结操作系统

静态联编与动态联编

在C++中,啥是运算符重载?啥是虚函数?