资源描述:
《实验4静态变量、友元》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验四静态变量.友元1、阅读程序要阅读的程序中存在语法错误,请将其找出来,能用自己的话说清理由#include#includeusingnamespacestd;classBox{public:Box(inth,intwjntl):height(h),width(w)Jength(l){}intvolume(){returnheight*width*length;};private:staticintheight;〃静态的数据成员intwidth;intlength;};intmain(){Boxb(2,3
2、,4);cout«nvolumeisH«b.volume()«endl;return0;}答:Box(inth,intw,intl):height(h),width(w),length⑴{}出现错误,不能用参数初始化对静态数据成员初始化.2、书后第九题#includeusingnamespacestd;classsell{public:sell(intqu):quantity(qu){}voidinput();staticvoiddisplayO;staticintaverage();voidkix();private:i
3、ntquantity;intnum;floatprice;staticfloatdiscount;staticfloatsum;staticintn;};floatsell::discount=0.98;floatsell::sum=l;intscll::n=3;voidsell::kix(){if(n>10)sum=quantity*discount*price;elsesum=quantity*p「icc;}intsell::average(){return(sum/n);}voidsell::display(){cout«"总销售价:"
4、«sum«endl;}voidsell::input(){cout«n销货员号:”;cin»num;cout«H销货件数:“;cin»quantity;cout«H销货单价“;cin»price;}intmain(){sella[3J={sell(3),sell(l),scll(O)};for(inti=0;iv3;i++){cout«i+l«endl;a[i].input();a[i].kix();a[i].display();a[i].kixQ;coutvv”、卜均伟价:M«a[i].average()«endl;return0;-eC:
5、UsersyuxiangDesktop^r^^{4:5^⑵DebugCpp6.exe*员化養辎均肖肖10515-3:•・2旦崔口Ail:102::1224.56:294.72:983000511■i2:2oty6e71kanycontinue3、阅读下面的程序,仔细阅读注释。然后模仿完成求点类屮距离的任务。〃例:使用成员函数、友元函数和一般函数的区别#incluclcusingnamespacestd;classTime{public:Time(inthjntmjnts):hour(h),minute(m),s
6、ec(s){}voiddisplay1();//成员函数声明friendvoiddisplay2(Time&);//友元函数声明intgetHour(){returnhour;}intgetMinute(){returnminute;}intgctScc(){returnsee;)private:inthour;intminute;intsec;};voiddisplay3(Time&);//一般函数声明voidTime::display1()〃成员函数的实现,dispalyl前加Time::〃以hour形式直接访问私有数据成员,实质是thi
7、s->hour形式cout«hour«'*:n«minute«":"«sec«endl;}voiddisplay2(Timc&t)〃友元函数的实现,dispaly2前不加Time::,并不是类的成员函数{〃不是类的成员函数,却可以匸hour的形式直接访问私有数据成员——友元cout«t.hour«":n«t.minute«M:"«t.sec«endl;}voiddisplay3(Time&t)//一-般函数的实现,dispalyl前加Time::{〃不能直接访问,只能川公共接口t.getHour()形式访问私冇数据成员cout«t.getHo
8、ur()«,,:"«t.getMinute()«',:,,«t.getSec()«endl;}intmain(){Timetl(10,13,56);tl.displ