c++知识点总结--静态与动态联编
2017-04-13 00:00
197 查看
静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型
动态联编是指在程序执行的时候才将函数实现和函数调用关联,因此也叫运行时绑定或者晚绑定,动态联编对函数的选择不是基于指针或者引用,而是基于对象类型,不同的对象类型将做出不同的编译结果。C++中一般情况下联编也是静态联编,但是一旦涉及到多态和虚拟函数就必须要使用动态联编了。
类与类指针
父类指针引用父类对象,完全正常
子类指针引用子类对象,覆盖父类的同名函数
父类指针引用子类对象,只能引用父类中的函数
子类指针引用父类对象,子类不涉及内部数据的函数会调用成功,涉及内部数据的会调用成功,执行失败,内存原理,数据并未分配内存,代码是共享的
子类指针可以引用父类不重名的函数,只能通过父类对象引用父类同名函数
对类而言,数据是私有的,代码是共有的,
指针为空,指向一个类,可以直接调用方法
fu *pfu=new zi;
delete pfu;//内存泄漏
父类的析构函数声明为virtual(虚析构函数),可以避免这个问题
动态联编是指在程序执行的时候才将函数实现和函数调用关联,因此也叫运行时绑定或者晚绑定,动态联编对函数的选择不是基于指针或者引用,而是基于对象类型,不同的对象类型将做出不同的编译结果。C++中一般情况下联编也是静态联编,但是一旦涉及到多态和虚拟函数就必须要使用动态联编了。
类与类指针
父类指针引用父类对象,完全正常
子类指针引用子类对象,覆盖父类的同名函数
父类指针引用子类对象,只能引用父类中的函数
子类指针引用父类对象,子类不涉及内部数据的函数会调用成功,涉及内部数据的会调用成功,执行失败,内存原理,数据并未分配内存,代码是共享的
子类指针可以引用父类不重名的函数,只能通过父类对象引用父类同名函数
对类而言,数据是私有的,代码是共有的,
指针为空,指向一个类,可以直接调用方法
fu *pfu=new zi;
delete pfu;//内存泄漏
父类的析构函数声明为virtual(虚析构函数),可以避免这个问题
相关文章推荐
- c++知识点总结--静态与动态类型
- C++变量的存储类别(动态存储、静态存储、自动变量、寄存器变量、extern、static) 总结
- [★]ComboBox 经验总结[动态绑定数据之后,静态添加一条数据]
- ASP.NET 动态转静态页面的两种方法总结 - 动态页面转换成HTML静态页面方法
- C++类型转化分析:强制转换,动态转换,静态转换等。
- C++易错知识点总结(一)...
- delphi dll 静态调用和动态调用方法总结
- ASP.NET 动态转静态页面的两种方法总结
- C++的静态绑定与动态绑定
- bcb平台的C++dll的静态调用法和动态调用法的方法
- C++中动态绑定和静态绑定
- C++知识点总结(1)
- [★]ComboBox 经验总结[动态绑定数据之后,静态添加一条数据] 转
- listener静态注册和动态注册总结
- [C++]静态绑定与动态绑定
- vb.net静态动态调用c++dll的方法
- ComboBox 经验总结[动态绑定数据之后,静态添加一条数据]
- ASP.NET 动态转静态页面的两种方法总结
- C/C++面试之算法系列--二维动态数组定义及二维静态数组与**P的区别
- Asp.net动态转静态页面的两种方法总结