您的位置:首页 > 其它

虚函数与构造函数,析构函数的关系

2014-08-10 22:13 211 查看
构造函数不能为虚函数,而析构函数可以为虚函数;

若析构函数为虚函数 : 那么当使用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 和 表示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: