什么是析构函数
析构函数
是对象在失效时执行的函数,常常用来释放一些不会自动释放的空间
比如,你的类中有指针类型,在程序运行过程中用
new
来分配了一些空间给这个指针,在对象失效的时候,就需要把这些空间释放掉。否则,可用内存就会越来越少(内存泄漏)。这些操作就需要在析构函数中处理
C++30道判断题,200分求精通C++的高手解答
错1. 类是具有相同属性和服务的一组对象的集合。
对2. 封装就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
对3. 所谓指令,就是计算机可以识别的命令。
对4. 使用内联函数是以牺牲增大空间开销为代价的。
对5. 对象是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。
对6. 内联函数的关键字为void。
错7. 循环语句的循环体至少执行一次。
错8. 一个函数模板只生成一个模板函数。
对 9. 所谓常量是指在程序运行的整个过程中其值始终不可改变的量。
对10. do-while循环可以写成while循环。
对1. 可以在类的构造函数中对静态数据成员进行初始化。
对2. 友元关系可以继承。
对3. 析构函数是在对象的生存期即将结束的时刻被自动调用的。
对4. 使用关键字class定义的类中默认的访问权限是私有的。
对5. delete用来删除由new建立的对象,释放指针所指向的内存空间。
对6. 私有成员只能被本类的成员函数访问,来自类外的任何访问都是非法的。
错7. 构造函数可以带参数。
错8. 析构函数是个函数体为空的成员函数。
错9. 对象数组的元素是不同类的对象。
对10. new的功能是动态分配内存。
对1. 当类的继承方式为公有继承时,基类的私有成员可以被派生类访问。
对2. 虚函数声明只能出现在类声明中的函数原型声明中,而不能在成员函数实现的时候。
3对. cerr是标准错误输出,没有缓冲,发送给它的内容立即被输出。
对4. C++语言异常处理机制的基本思想是将异常的检测与处理分离。
错5. 绑定工作在编译连接阶段完成的情况称为静态绑定。
错6. 抽象类可以实例化。
对7. cin是ostream的一个对象,用于处理标准输入。
对8. 带有纯虚函数的类是抽象类。
错9. 绑定工作在程序运行阶段完成的情况称为静态绑定。
对10. 使用I/O流的程序需要包含iostream.h.
输入内容已经达到长度限制还能输入 9999 字
c++的几道判断题
1:正确; 课件上有说明
2:错误 它可以用来在局部变量与全局变量同名是通过::可以引用全局变量;
3:错误 如果析构函数体为空的话试问它拿什么来析构对象;
4:错误 构造函数可以重载因为要构造不同的对象,析构函数不能重载;
5:正确 和结构体一样的.
6:正确 但如果是在类中定义的是静态成员的话,可以用类名::对象成员名,如果对像是指针对象的话还可以用(*指针对象名).调用;
7:错误 在类中用friend声明的外部普通函数ue可以访问类中私有的成员;
8:错误 静态和const定义成员变量时不能的应为静态的只能初始化一次,const定义是一个常量不言而语.
9:错误 类的静态成员只能在类外进行初始化类型 类名::静态成员名=初值,只能是这样其它所有的赋值方法都是错误的(这是针对类的静态成员而言的).
10:正确 本来静态成员函数是用来处理静态的成员数据的.
什么是析构函数
析构函数是特殊的类成员函数,简单来说,析构函数与构造函数的作用正好相反,它用来完成对象被删除前的一些清理工作,也就是专门的扫尾工作。
如果构造函数打开了一个文件,最后不需要使用时文件就要被关闭,析构函数允许类自动完成类似清理工作,不必调用其他成员函数。
扩展资料:
函数介绍
与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统会自动执行析构函数。以C++语言为例:析构函数名也应与类名相同,只是在函数名前面加一个位取反符,例如~stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。
只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数(即使自定义了析构函数,编译器也总是会为我们合成一个析构函数。
大工14春《C/C++语言程序设计》在线作业2
说句实在话,这种基本题最好还是自己做,不会的自己查答案,这样自己的印象可以比较深一点,而且对自己更有好处(前提:如果你想学好程序),不过也谢谢你,个别题我自己都不知道答案,通过查阅我又巩固了一下知识。
答案:一、CBDDACADAC 二、BABAAAABAA.
谁帮我做下C++语言的选择题 谢谢了
1. 可以在类的构造函数中对静态数据成员进行初始化。
错误。
2. 友元关系可以继承。
错误。
3. 析构函数是在对象的生存期即将结束的时刻被自动调用的。
错误。
4. 使用关键字class定义的类中默认的访问权限是私有的。
正确。
5. delete用来删除由new建立的对象,释放指针所指向的内存空间。
正确。
6. 私有成员只能被本类的成员函数访问,来自类外的任何访问都是非法的。
正确。
7. 构造函数可以带参数。
正确。
8. 析构函数是个函数体为空的成员函数。
错误。
9. 对象数组的元素是不同类的对象。
错误。
10. new的功能是动态分配内存。
正确。
C++默认析构函数没有任何特殊的功能 它就是一个空函数
如果是初级的C++入门书籍会告诉你,默认的构造和析构函数都是空函数,他不做任何操作。
但实际情况是,严格上来说这句话是错误的。应该分情况讨论如下:
-
一个类是Plain Old Data类型的,即该类的构造函数和析构函数都是平凡的(trivial的),若该类的默认构造/析构函数存在,则他们是空函数。
2. 如果一个类不满足POD条件,即该类是非平凡的(non-trivial的),则默认析构函数不是空函数,它将是类中非平凡的类成员变量的析构函数的合成函数。(构造函数情况稍微复杂,此处不讨论)
这些概念较深,不理解也没关系。举例如下:
class A
{
A(){printf(“A constructor called!\n“);}
~A(){printf(“A destructor called!\n“);}
}
class B
{
A a;
}
void main()
{
if(1)
{
B* b = new B();
}
system(“pause“);
}
很明显,类B中没有提供析构函数,但是从输出可以看出,main函数类B的实例析构时调用了类A的析构函数。
希望对你有帮助,手工输入,请采纳。
C++判断题,不会啊,555
F 可以用typedef来该函数名
F 静态成员函数才是对象共享的
F 他不是一个空函数,他是来释放空间的
F 是对象用来共享的数据成员,是所有的
friend 这是友元函数
A 构建对象