时候由系统自动调用。析构函数与构造函数的作用几乎正好相反,它是用来完成对象被删除前的一些清理工作,也就是专门作扫尾工作的。一般情况下,析构函数是在对象的生存期即将结束的时刻由系统自动调用的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放。4、44数据成员可以为公有的吗?成员函数可以为私有的吗?解:可以,二者都是合法的。数据成员和成员函数都可以为公有或私有的。但数据成员最好定义为私有的。6、46什么叫做复制构造函数?复制构造函数何时被调用?解:复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用,其作用是使用一个已经存在的对象,去初始化一个新的同类的对象。在以下三种情况下会被调用:在当用类的一个对象去初始化该类的另一个对象时;如果函数的形参是类对象,调用函数进行形参和实参结合时;如果函数的返回值是类对象,函数调用完成返回时;7、47拷贝构造函数与赋值运算符有何不同?解:赋值运算符作用于一个已存在的对象;而拷贝构造函数会创建一个新的对象。
第五章
1、51什么叫做作用域?有哪几种类型的作用域?解:作用域讨论的是标识符的有效范围,作用域是一个标识符在程序正文中有效的区域。C的作用域分为函数原形作用域、块作用域局部作用域、类作用域和文件作用域2、52什么叫做可见性?可见性的一般规则是什么?解:可见性是标识符是否可以引用的问题;可见性的一般规则是:标识符要声明在前,引用在后,在同一作用域中,不能声明同名的标识符。对于在不同的作用域声明的标识符,遵循的原则是:若有两个或多个具有包含关系的作用域,外层声明的标识符如果在内层没有声明同名标识符时仍可见,如果内层声明了同名标识符则外层标识符不可见。3、55什么叫做静态数据成员?它有何特点?解:类的静态数据成员是类的数据成员的一种特例,采用static关键字来声明。对于类的普通数据成员,每一个类的对象都拥有一个拷贝,就是说每个对象的同名数据成员可以分别存储不同的数值,这也是保证对象拥有自身区别于其它对象的特征的需要,但是静态数据成员,每个类只要一个拷贝,由所有该类的对象共同维护和使用,这个共同维护、使用也就实现了同
f一类的不同对象之间的数据共享。4、56什么叫做静态函数成员?它有何特点?解:使用static关键字声明的函数成员是静态的,静态函数成员属于整个类,同一个类的所有对象共同维护,为这些对象r