网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

构造函数可以定义为虚函数,析构函数不可以定义为虚函数。()


参考答案和解析
(1) 构造函数不能为虚函数
这就要涉及到C++对象的构造问题了,C++对象在三个地方构建:(1)函数堆栈;(2)自由存储区,或称之为堆;(3)静态存储区。无论在那里构建,其过程都是两步:首先,分配一块内存;其次,调用构造函数。好,问题来了,如果构造函数是虚函数,那么就需要通过vtable 来调用,但此时面对一块 raw memeory,到哪里去找 vtable 呢?毕竟,vtable 是在构造函数中才初始化的啊,而不是在其之前。因此构造函数不能为虚函数。
(2)析构函数可以是虚函数,且常常如此
这个就好理解了,因为此时 vtable 已经初始化了;况且我们通常通过基类的指针来销毁对象,如果析构函数不为虚的话,就不能正确识别对象类型,从而不能正确销毁对象。
更多 “构造函数可以定义为虚函数,析构函数不可以定义为虚函数。()” 相关考题
考题 下列关于构造函数和析构函数的描述,错误的是( )。A.析构函数中调用虚函数采用静态联编B.对虚析构函数的调用可以采用动态联编C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D.构造函数可以声明为虚函数

考题 下列()可以是虚函数。A、构造函数B、拷贝构造函数C、静态成员函数D、析构函数

考题 析构函数可以是虚函数,构造函数不能定义为虚函数。()

考题 下面属于析构函数特征的是()。 A.析构函数可以重载B.对象销毁前会自动调用析构函数C.如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数~类名()}D.析构函数的函数类型为void

考题 下列函数中,可以作为虚函数的是()。A、析构函数B、成员函数C、普通函数D、构造函数

考题 在基类中没有具体定义,但要求任何派生类都自已定义版本的虚函数是()。 A.虚析构函数;B.构造函数;C.纯虚函数;D.静态成员函数。

考题 下列关于虚函数的描述,错误的是( )。A.构造函数可以是虚函数B.析构函数可以是虚函数C.虚函数必须通过引用或基类的指针实现D.虚函数的函数名必须与基类中对应的虚函数的函数名完全相同

考题 下面关于构造函数和析构函数的描述中,错误的是( )A.析构函数可以声明为虚函数B.对虚析构函数的调用可以采用动态联编C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D.构造函数可以声明为虚函数

考题 是一个在百慕大类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。A.虚析构函数B.虚构造函数C.纯虚函数D.静态成员函数

考题 下列描述中正确的是( )。A.构造函数可以为虚函数,析构函数不可以为虚函数B.构造函数不可以为虚函数,析构函数可以为虚函数C.构造函数可以为虚函数,析构函数可以为虚函数D.构造函数不可以为虚函数,析构函数不可以为虚函数

考题 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是A.友元函数B.虚函数C.构造函数D.析构函数

考题 是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。A.虚析构函数B.构造函数C.纯虚函数D.静态成员函数

考题 在一个类中可以定义()构造函数,()个析构函数。

考题 类型转换函数只能定义为一个类的()A、构造函数B、析构函数C、成员函数D、友员函数

考题 析构函数可以定义为虚函数。

考题 下面说法正确的是()。A、构造函数可以重载,析构函数不能重载B、构造函数不能重载,析构函数可以重载C、构造函数可以重载,析构函数也可以重载D、构造函数和析构函数都不可以重载

考题 类的构造函数和析构函数一般都声明为虚函数。

考题 析构函数可以说明为虚函数,而构造函数说明为虚函数没有意义。

考题 构造函数和析构函数均不能被说明为虚函数。

考题 构造函数和析构函数均都可以被说明为虚函数,只是构造函数和析构函数的功能不同而已。

考题 下面关于构造函数和析构函数的描述,错误的是()A、析构函数中调用虚函数采用静态联编B、对虚析构函数的调用可以采用动态联编C、当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D、构造函数可以声明为虚函数

考题 虚函数必须是类的()。A、友元函数B、成员函数C、构造函数D、析构函数

考题 判断题析构函数可以定义为虚函数。A 对B 错

考题 单选题下列关于虚函数的描述,正确的是()。A 静态成员函数可以是虚函数B 构造函数不可以是虚函数C 析构函数不可以是虚函数D 内联函数可以是虚函数

考题 问答题为什么析构函数通常声明为虚函数,而构造函数不能是虚函数?

考题 单选题下面说法正确的是()。A 构造函数可以重载,析构函数不能重载B 构造函数不能重载,析构函数可以重载C 构造函数可以重载,析构函数也可以重载D 构造函数和析构函数都不可以重载

考题 判断题析构函数可以说明为虚函数,而构造函数说明为虚函数没有意义。A 对B 错

考题 判断题构造函数和析构函数均都可以被说明为虚函数,只是构造函数和析构函数的功能不同而已。A 对B 错