1、三、 实验注意事项程序中,需要编写一个可执行函数与main主调函数,自主设计输入、输出值,使得结果可以由控制台显示输出。四、 实验程序代码(一)盒子程序:#includeusing namespace std;class box /盒子类public: class box(float a , float b , float c )/内联构造函数 length = a; width = b; hight = c; float volume() /内联成员函数 return length*width*hight;private: float length, width, hight;/长宽高;in
2、t main() /主调函数 float data3; while (1) cout *n请输入盒子的nn长度: data0;宽度: data1;高度: data2; box B(data0, data1, data2);/构建盒子类对象B并初始化盒子的体积为: B.volume() class employee employee(string na,string num,int pos,string cty ,string add)/内联构造函数 name=na; number=num; postcode=pos; city=cty; address=add; int change_name
3、(void) /内联成员函数 coutname; return 0; int change_number(void) /内联成员函数请重新输入编号:number; int change_postcode(void) /内联成员函数请重新输入邮编:postcode; int change_city(void) /内联成员函数请重新输入城市:city; int change_address(void) /内联成员函数请重新输入地址:address; int display(void);/由于函数体较大,使用普通成员函数的构造方法 string name,city,address,number; /
4、类的数据成员 int postcode;int employee:display(void) /成员函数的构建 cout*n姓名:namen编号(末四位):numbern邮编:postcoden城市:cityn地址:addressint main(void) employee P1(黄楷,4083,430000,武汉武汉科技大学青山校区); P1.display(); P1.change_name(); P1.change_number(); P1.change_postcode(); P1.change_city(); P1.change_address();(三)People类录入程序:e
5、num SEX man,woman; /性别属性为枚举类型class Date Date(unsigned int dy, unsigned int mon, unsigned int yr)/内联构造函数 day = dy; month = mon; year = yr; Date()/默认构造函数 day = 0; month = 0; year = 0; Date(Date&d) day = d.day; month = d.month; year = d.year; int show(void) /内联成员函数 year 年 month 月 day 日 Date() /析构函数 uns
6、igned int day, month, year;class People People(string na, string num, SEX sx, Date birth, string id_num);/构造函数 People(People&p); int show(void); People() string name, number, id; Date birthday; /内嵌对象生日 SEX sex; /性别People:People(string na, string num, SEX sx, Date birth, string id_num):birthday(birth
7、)/组合类构造函数 name = na; number = num; sex = sx; id = id_num;People(People&p):birthday(p.birthday)/组合类复制构造函数 name = p.name; number =p.number; sex = p.sex; id = p.id;int People:show(void) string temp; if (sex = man)temp = 男; else temp = 女 cout *n姓名: name n编号: number n性别: temp n出生日期: birthday.show();身份证号:
8、 id name;请输入编号: number;性别: A.男 B.女 while(!check) choice; switch (choice) case Aa sex = man; check = 1; break;Bbsex = woman; default:check = 0;输入错误请重输: 出生年: year;月: month;日: day; id; Date d(day,month,year); People p(name, number, sex, d, id); p.show();五、 实验运行结果(一) 盒子程序:(二) Employee类的实现:(三) People类的录入
9、程序:六、 实验心得与体会 通过这次试验我更加熟练的掌握了类的定义和构造。成员函数可以隐式内联,可以显示内联,构造函数同理。并且在成员函数体较大时,为了不增加冗余,应当不适用内联,以减小代码大小。而实验三所习最多:1. 枚举类型的用法,enum 类名类值;2. 拷贝构造函数的定义语法类名(类名&引用名)成员名=引用名.成员名;3. 析构函数 类名()4. 组合类的定义组合类构造函数的声明 类名(普通形参内嵌对象形参):内嵌对象(内嵌对象的形参), 组合类拷贝构造函数的声明 类名(类名&引用名):内嵌对象(引用名.内嵌对象)普通成员=引用名.普通成员名;组合类默认构造函数的声明类名()成员=默认值;5. 构造函数的调用a.内嵌对象的构造函数调用按在组合类定义中出现的顺序,且先调用内嵌对象的构造函数,再实现组合类构造函数函数体;b.内嵌对象没有出现在初始化列表中,用内嵌对象的默认构造函数;c.系统自动生成的隐含默认构造函数在初始化时起到作用;d.没有默认构造函数的成员对象和引用型变量必须初始化;6.析构函数调用顺序正好与构造函数相反7.组合类对象初始化时会调用两次内嵌对象的复制构造函数,即实参复制给形参,形参复制给内嵌对象两次。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2