第四章类4-1解释public和private的作用,公有类型成员与私有类型成员有些什么区别?4-2protected关键字有何作用?4-3构造函数和析构函数有什么作用?4-4数据成员可以为公有的吗?成员函数可以为私有的吗?4-5已知classA中有数据成员inta,如果定义了A的两个对象a1、a2,它们各自的数据成员a的值可以不同吗?4-6什么叫做复制构造函数?复制构造函数何时被调用?4-7复制构造函数与赋值运算符(=)有何不同?4-8声明一个Dog类,包含的age,weight等属性,以及对这些属性操作的方法。实现并测试这个类。4-9设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算矩形的面积。4-10设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、性别、出生日期、身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、复制构造函数、内联成员函数、带默认形参值的成员函数、类的组合。4-11定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。4-12定义一个DataType(数据类型)类,能处理包含字符型、整型、浮点型3种类型的数据,给出其构造函数。4-13定义一个Circle类,有数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。4-14定义一个Tree(树)类,有成员ages(树龄),成员函数grow(intyears)对ages加上years,age()显示tree对象的ages的值。4-15根据例4-3中有关Circle类定义的源代码绘出该类的UML图形表示。4-16根据下面C++代码绘出相应的UML图形,表示出类ZRF、类SSH和类Person之间的继承关系。classPerson{public:Person(constPerson&right);~Person();private:charName;intAge;};classZRF:protectedPerson();classSSH:privatePerson();4-17在一个大学的选课系统中,包括两个类:CourseSchedule类和Course类。其关系为:CourseSchedule类中的成员函数add和remove的参数是Course类的对象,请通过UML方法显示表示出这种依赖关系。4-18在一个大学院系人员信息系统中,需要对院系(Department)和教师(Teacher)之间的关系进行部分建模,其关系描述为:每个Teacher可以属于零个或多个Department的成员,而每个Departmen至少包含一个Teacher作为成员。根据以上关系绘制出相应的UML类图。4-19编写一个名为CPU的类,描述一个CPU的以下信息:时钟频率,最大不会超过3000MHz;字长,可以是32位或64位;核数,可以是单核、双核和四核;是否支持超线程。各项信息要求使用位域来表示。通过输出sizeof(CPU)来观察该类所占的字节数。4-20定义一个负数类Complex,使得下面的代码能够工作。Complexc1(3,5);//用复数3+5i初始化c1Complexc2=4.5;//用实数4.5初始化c2c1.add(c2);//将c1与c2相加,结果保存在c1中c1.show();//将c1输出(这时的结果应该是7.5+5i)