构造函数不能为虚函数,而析构函数可以为虚函数;
若析构函数为虚函数 : 那么当使用delete释放基类指针指向的派生类对象时,先调用派生类的析构函数,在调用基类的析构函数;
一般时:基类对象指向派生类队形时,释放时不调用派生类的析构函数;
纯虚函数:在析构函数和构造函数中调用虚函数使用静态编译,因此,在这两个函数中不能调用纯虚函数。但其他函数可以调用纯虚函数。
析构函数不能重载(无参数,无返回值);
构造函数可以重载(无返回值);
1. 下列选项中正确的是
A)构造函数可以重载, 析构函数不能重载 B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数也可以重载 D)构造函数不能重载,析构函数也不能重载
2.类的析构函数的作用是
A) 一般成员函数 B)类的初始化 C)对象的初始化 D)删除对象
3. 对友元函数的正确描述是
A) 友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数
C) 友元函数拨坏了破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有成员
4. 在C++中,数据封装要解决的问题是
A)数据的规范化 B)便于数据转换 C) 避免数据丢失 D)防止不同模块之间数据的访问
5. 对结构体中定义的成员,默认的访问权限为
A)public B) protected C) private D) static
6. 类型转换函数的作用是————————
7.赋值重载函数与赋值构造函数应用中的区别是———————
8 C++中局部变量和全局变量重名时,欲访问全局变量,应该——————————
9 下列程序运行时会出现严重错误,为什么?#include<string.h>
void main( )
{char* p,* q;
p=new char[10];
q=new char[10];
strcpy(p,"ABCD");
q=p; delete []p; delete []q; }
10类中的保护段数据与共有段数据的主要区别是什么?
10. C++建立类族的实现是通过 [ ]
A) 类的嵌套 B)虚函数 C)类的继承 D) 抽象类
11. 不能被派生类继承的有 [ ]
构造函数 B) 虚函数 C) 静态成员函数 D) 赋值操作函数
1. 纯虚函数是
A) virtual int vf(int); B) void vf(int)=0;
C) virtual void vf()=0; D) virtual void vf(int){}
2.设置虚基类的目的是
A)简化程序 B)消除二义性
C)提高运行效率 D)减少目标代码
3.设置虚函数的目的是实现动态编联,用关键字 标识虚函数。
4.类的派生有主要有三种方式,分别用描述符public, protected 和 表示。