虚函数与构造函数,析构函数的关系
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 和 表示。
若析构函数为虚函数 : 那么当使用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 和 表示。
相关文章推荐
- 继承下构造函数与析构函数顺序及虚函数
- C++中构造函数、析构函数和虚函数
- 不要在构造函数和析构函数中调用虚函数
- C++:构造函数和析构函数能否为虚函数
- 为什么C++的构造函数不可以是虚函数,而析构函数可以是虚函数
- 构造函数与析构函数中不调用虚函数
- 为什么构造函数不能声明为虚函数,析构函数可以
- 全局变量,继承,虚函数,构造函数和析构函数的调用过程
- 构造函数和析构函数,在C++中能否声明为虚函数?构造函数和析构函数里面能否调用虚函数?
- 在构造函数和析构函数中调用虚函数
- 1.构造函数和析构函数能否申明为虚函数
- 为什么构造函数不能声明为虚函数,析构函数可以
- 构造函数,析构函数可不可以是虚函数?
- C++语言特性:构造函数,析构函数,虚函数,内联函数,静态成员函数,重载,覆盖,隐藏
- 虚函数与构造函数析构函数
- 构造函数和析构函数能否声明为虚函数?
- C++中为什么构造函数不能是虚函数,析构函数是虚函数
- C++:构造函数和析构函数能否为虚函数
- 转 C++构造函数、析构函数、虚函数之间的关系
- C++:构造函数和析构函数能否为虚函数