下列函数原型中,可以作为类Base析构函数的是()
第1题:
下列关于构造函数和析构函数的描述,错误的是( )。
A.析构函数中调用虚函数采用静态联编
B.对虚析构函数的调用可以采用动态联编
C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D.构造函数可以声明为虚函数
第2题:
A.析构函数可以重载
B.对象销毁前会自动调用析构函数
C.如果定义一个类时没有定义析构函数,则系统会提供一个默认析构函数~<类名>()}
D.析构函数的函数类型为void
第3题:
( 32 ) 在一个派生类对象结束其生命周期时
A ) 先调用 派生类的析构函数后调用基类的析构函数
B ) 先调用 基类的析构函数后调用派生类的析构函数
C ) 如果基类没有定义 析构函数,则只调用派生类的析构函数
D ) 如果 派生类 没有定义 析构函数,则只调用 基类 的析构函数
第4题:
是析构函数的特征。
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
第5题:
使用VC6打开考生文件夹下的工程test2_1,此工程包含一个源程序文件test2_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:
调用基类BASE的构造函数:1
调用基类BASE的构造函数:2
调用派生类A的构造函数:3
调用派生类A的析构函数
调用基类BASE的析构函数
调用基类BASE的析构函数
源程序文什test2_1.cpp清单如下:
include<iostream.h>
class BASE
{
public:
BASE(int i){cout<<"调用基类BASE的构造函数:"<<i<<endl;}
~BASE(){cout<<"调用基类BASE的析构函数"<<endl;)
/***************** found *****************/
}
class A:public BASE
{
public:
/***************** found *****************/
A(int a,int b):i(a),b(b)
{cout<<"调用派生类A的构造函数:"<<a+b<<endl;}
~A(){cout<<"调用派生类A的析构函数"<<endl;)
private:
BASE b;
};
void main()
{
/****************found***************/
BASE obj(1,2);
}
第6题:
下面关于析构函数特征的描述正确的是()。
A、一个类中可以定义多个析构函数
B、析构函数名与类名相同
C、析构函数不能指定返回类型
D、析构函数可以有一个或多个参数
第7题:
下列函数中,可以作为虚函数的是()。
A、析构函数
B、成员函数
C、普通函数
D、构造函数
第8题:
对类的构造函数和析构函数描述正确的是
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重载
第9题:
A. 先调用基类的析构函数,后调用派生类的析构函数
B.先调用派生类的析构函数,后调用基类的析构函数
C.如果基类没有定义析构函数,则只调用派生类的析构函数
D.如果派生类没有定义析构函数,则只调用基类的析构函数
第10题:
下面关于构造函数和析构函数的描述中,错误的是( )
A.析构函数可以声明为虚函数
B.对虚析构函数的调用可以采用动态联编
C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响
D.构造函数可以声明为虚函数