22:什么是动态联编,什么是静态联编
时间: 2023-12-08 07:16:38 浏览: 25
动态联编(也称为运行时多态)和静态联编(也称为编译时多态)是面向对象程序设计中的两个概念。
动态联编是指在程序运行时确定具体调用哪个函数。在运行时,程序会根据对象的实际类型来决定所调用的函数。通常情况下,动态联编需要通过虚函数来实现。
静态联编是指在程序编译时就能够确定具体调用哪个函数。在编译时,程序会根据变量或者表达式的静态类型来决定所调用的函数。通常情况下,静态联编需要通过重载来实现。
总的来说,动态联编能够实现更加灵活的多态性,但是需要在运行时进行函数调用,会带来一定的性能损失;静态联编则能够在编译时完成函数调用,性能更高,但是多态性相对较差。
相关问题
什么是动态联编和静态联编?
动态联编和静态联编都是指在程序运行时如何确定调用哪个函数或程序。
动态联编指在程序运行时根据实际情况确定调用哪个函数或程序,即动态地将函数或程序链接到调用点。在动态联编中,编译器并不知道调用哪个函数,其调用的函数是在程序运行时由操作系统或程序自己决定的。例如,C++中的虚函数就是动态联编的典型例子,程序在运行时根据对象的实际类型确定调用哪个虚函数。
静态联编指在程序编译时确定调用哪个函数或程序,即编译时将函数或程序链接到调用点。在静态联编中,编译器可以通过函数名和参数的类型来准确地确定调用哪个函数。例如,C语言中的函数就是静态联编的典型例子,编译器在编译时就能够确定调用哪个函数。
总之,动态联编是在程序运行时确定调用哪个函数,而静态联编是在程序编译时确定调用哪个函数。
c++静态联编与动态联编详解
C++中的联编指的是将源代码转换成可执行代码的过程中,编译器如何解析函数和变量的引用。C++中有两种联编方式:静态联编和动态联编。
1. 静态联编
静态联编是指在编译期间,编译器就将函数和变量的引用与其定义进行了绑定,生成了一个可执行文件。这种方式的优点是速度快,因为所有的函数和变量的地址都是在编译期间就已经确定了。缺点是可执行文件比较大,并且修改代码后需要重新编译整个程序。
2. 动态联编
动态联编是指在程序运行期间,根据需要动态地将函数和变量的引用与其定义进行绑定。这种方式的优点是可执行文件比较小,修改代码后只需要重新编译修改的部分,不需要重新编译整个程序。缺点是速度较慢,因为需要在运行期间解析函数和变量的地址。
在C++中,动态联编通常是通过函数指针实现的,而静态联编则是通过链接器实现的。在使用动态链接库时,编译器会在可执行文件中生成一个动态链接库的引用表,程序启动时再根据需要动态地加载所需的动态链接库。