欢迎来到天天文库
浏览记录
ID:58008342
大小:37.00 KB
页数:8页
时间:2020-04-20
《运算符重栽、模板、输入输出流.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、深圳大学实验报告课程名称:面向对象程序设计实验名称:运算符重栽、模板、输入输出流学院:计算机与软件学院专业:计算机科学与技术指导教师:张小绵报告人:学号:班级:04实验时间:2010.6.16实验报告提交时间:2010.6.291.实验目的:1.通过实验理解运算符重栽、模板、输入输出流的概念。2.实验要求:(1)定义一个商品类CGoods,其中包含商品号(longno)、商品名(char*p_name)、商品价格(doubleprice)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印
2、数据成员的成员函数。(2)为CGoods类增加一个商品总数(intcount)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。做如上修改后,重新实现CGoods类。(3)为CGoods类定义赋值运算符(‘=’)、小于运算符(‘<’)和大于运算符(‘>’)三个运算符重载函数。(其中大于运算符(‘>’)试用友元函数模板实现)(4)编写一个主函数来测试上题CGoods类的实现。(1)在上题的基础上,以CGoods类为基类,派生出
3、服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char*p_brand)和表示用途的成员函数(voidusedFor()——可分别输出一条表示服装和食品用途的信息)。写出CClothes类和CFood类的完整定义。(2)编写一个主函数来测试CClothes类和CFood类usedFor()方法的动态联编性。实验过程1.源代码:头文件:#ifndefEXP#defineEXPclassCGoods{private:longno;char*p_nam
4、e;doubleprice;staticintcount;public:CGoods(longno_val=0,char*p_name_val="",doubleprice_val=0.00);CGoods(CGoods&c);voidset(longno_val,char*p_name_val,doubleprice_val){no=no_val;price=price_val;p_name=newchar[strlen(p_name_val)+1];strcpy(p_name,p_name_val
5、);};voidprint()const;intgetcount();virtualvoidusedfor()const{cout<<"该商品用于t"<friendoperator>(constT&r_a,constT&r_b){if(r_a.price
6、>r_b.price);returntrue;returnfalse;}~CGoods();};classCClothes:publicCGoods{private:char*p_brand;public:CClothes(longno_val=0,char*p_name_val="",doubleprice_val=0.00,char*p_b=""){CGoods::set(no_val,p_name_val,price_val);p_brand=newchar[strlen(p_b)+1];str
7、cpy(p_brand,p_b);}voidusedfor()const{cout<<"商品品牌:"<8、set(no_val,p_name_val,price_val);p_brand=newchar[strlen(p_b)+1];strcpy(p_brand,p_b);}voidusedfor()const{cout<<"商品品牌为:"<usingnamespaces
8、set(no_val,p_name_val,price_val);p_brand=newchar[strlen(p_b)+1];strcpy(p_brand,p_b);}voidusedfor()const{cout<<"商品品牌为:"<usingnamespaces
此文档下载收益归作者所有