首页 > 试题广场 >

调用一成员函数时, 使用动态联编的情况是?

[单选题]
调用一成员函数时, 使用动态联编的情况是?
  • 通过对象调用一虚函数
  • 通过指针或引用调用一虚函数
  • 通过对象调用静态函数
  • 通过指针或应用调用一静态函数

动态联编又叫动态绑定,一开始没反应过来。。。属于运行时多态的一种
具体的解释请看 wellwang 的答案
发表于 2016-03-02 16:41:17 回复(0)
动态联编就是程序在运行的时候知道该调用哪个函数,而不是编译阶段,所以这个机制应该是由虚函数支持的,即运行时的多态,基类的某个成员函数声明为虚函数,派生类继承,而且同样重写该函数,那么当声明一个派生类的指针或者引用时,它所调用的函数是由该指针指向的对象确定的,这就是动态联编
发表于 2015-08-22 07:56:43 回复(0)
C++支持编译时的多态:函数重载,运算符重载(静态多态)
              运行时的多态:虚函数,发生继承关系时(动态多态)
静态多态与动态多态的区别:函数地址早绑定 (静态联编):在编译阶段确定函数的调用地址
                                               函数地址晚绑定(动态联编):在运行时确定
动态多态:父类的指针或引用指向子类的对象。
发表于 2019-07-01 11:00:42 回复(0)
动态联编 只能通过指针或引用标识对象来操作虚函数 ;如果采用一般的标识对象来操作虚函数,将采用静态联编的方式调用虚函数;
发表于 2016-08-25 18:01:46 回复(3)
动态联编在这里就是指动态绑定。
发表于 2016-03-29 10:33:29 回复(0)

动态联编(Dynamic Binding,也称运行时绑定)是在程序运行时而不是编译时决定函数调用的过程。在C++中,动态联编主要应用于虚函数的实现上。虚函数是一个在基类中声明为virtual的成员函数,在派生类中被重写。当通过指向派生类对象的基类指针或引用调用虚函数时,会根据指针或引用实际指向的对象类型,动态地决定调用哪个版本的虚函数,这就是动态联编。

具体来说,当通过对象调用虚函数时,编译器可以确定要调用的函数版本,因此实际上使用的是静态联编;而当通过指针或引用调用虚函数时,编译器无法确定要调用的函数版本,需要在运行时根据指针或引用的类型动态决定,因此使用的是动态联编。

发表于 2023-10-30 16:10:42 回复(0)
B 定义父类的指针或引用,用以指向派生类的对象时,根据对象属于哪个子类来调用函数。
发表于 2015-04-12 17:06:08 回复(0)
通过指针或引用调用-虚函数
发表于 2022-02-23 14:48:19 回复(0)
动态联编,即运行时多态,是指在程序运行时确定函数地址的。用虚函数来实现,通过基类的指针或引用指向派生类的对象,不同的派生类对象调用的重载虚函数的地址不同。
发表于 2020-03-20 22:05:45 回复(0)
动态联编就是程序在运行的时候知道该调用哪个函数,而不是编译阶段,所以这个机制应该是由虚函数支持的,即运行时的多态,基类的某个成员函数声明为虚函数,派生类继承,而且同样重写该函数,那么当声明一个派生类的指针或者引用时,它所调用的函数是由该指针指向的对象确定的,这就是动态联编
发表于 2019-02-21 11:52:58 回复(0)
B
发表于 2015-05-14 22:04:57 回复(0)