首页 > 试题广场 >

下列函数中,不能声明为虚函数的是

[单选题]
下列函数中,不能声明为虚函数的是
  • 析构函数
  • 构造函数
  • 私有成员函数
  • 公有成员函数
1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。 2 虚函数的执行依赖于虚函数表。而虚函数表在构造函数中进行初始化工作,即初始化vptr,让他指向正确的虚函数表。而在构造对象期间,虚函数表还没有被初始化,将无法进行。
编辑于 2020-08-03 08:50:14 回复(0)

构造函数不能声明为虚函数;但析构函数可以声明为虚函数,可解决父类指针释放子类对象问题。

发表于 2021-04-06 16:22:35 回复(0)
构造函数用于创建对象并初始化其成员变量,它在对象创建时被调用。虚函数通过动态绑定在运行时进行解析,但构造函数在对象创建时运行时类型尚未确定,因此无法使用虚函数进行动态绑定。
发表于 2023-10-31 08:58:58 回复(0)