C++题目4.docx
- 文档编号:17502173
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:44
- 大小:21.87KB
C++题目4.docx
《C++题目4.docx》由会员分享,可在线阅读,更多相关《C++题目4.docx(44页珍藏版)》请在冰点文库上搜索。
C++题目4
供学习参考用,分开下载
#include
//ex_class类接口定义
classex_class
{
private:
intiv;
doubledv;
public:
ex_class(void);
ex_class(intn,doublex);
voidset_ex_class(intn,doublex);
voidshow_ex_class(char*);
};
//定义ex_class类的构造函数
ex_class:
:
ex_class(void):
iv
(1),dv(1.0){}
ex_class:
:
ex_class(intn,doublex):
iv(n),dv(x){}
//定义ex_class类的成员函数
voidex_class:
:
set_ex_class(intn,doublex)
{
iv=n;
dv=x;
}
#include
//定义一个含有static数据成员的类
classex
{
staticintnum;//static数据成员
public:
ex(){num++;}
~ex(){num--;}
disp_count(){
cout<<"Thecurrentinstancescount:
";
cout< } }; voidex_class: : show_ex_class(char*name) { cout< "< cout<<"iv="< cout<<"dv="< } //使用ex_class类 voidmain(void) { ex_classobj1; obj1.show_ex_class("obj1"); obj1.set_ex_class(5,5.5); obj1.show_ex_class("obj1"); ex_classobj2(100,3.14); obj2.show_ex_class("obj2"); obj2.set_ex_class(2000,1.732); obj2.show_ex_class("obj2"); } intex: : num=0;//设置static数据成员的初值 //main()函数测试ex类 main() { exa; a.disp_count(); ex*p; p=newex; p->disp_count(); exx[10]; x[0].disp_count(); deletep; a.disp_count(); } #include //定义一个含有static数据成员的类 classex { staticintnum;//static数据成员 public: ex(){num++;} ~ex(){num--;} staticdisp_count(void)//static成员函数 { cout<<"Thecurrentinstancescount: "; cout< } }; intex: : num=0;//设置static数据成员的初值 //main()函数测试ex类 main() { exa; a.disp_count(); ex*p; p=newex; p->disp_count(); exx[10]; ex: : disp_count();//直接用类作用域符引用静态成员函数 deletep; ex: : disp_count();//直接用类作用域符引用静态成员函数 } #include classex_class{ intvalue; public: ex_class(intn){ value=n; cout<<"Stackinitialized."< } ~ex_class(){ cout<<"TheObjectdestroyed."< } voidset_value(intn); voidshow_val(char*name); }; //在类外定义内联成员函数 inlinevoidex_class: : set_value(intn){ value=n; } //在类外定义非内联成员函数 voidex_class: : show_val(char*name){ cout< "; cout< } //在main()函数中测试ex_class类 main(void) { //创建对象x和y ex_classx(100),y(200); //显示对象的数据 x.show_val("x"); y.show_val("y"); //设置新值给对象 x.set_value (1); y.set_value (2); //显示对象的数据 x.show_val("x"); y.show_val("y"); return0; } #include //定义空类empty classempty { }; //在main()函数中用空类创建对象 main() { emptya,*p;//编译通过 cout<<"Testaemptyclass."< } #include //用struct关键字定义ex_class类 structex_class{ ex_class(intn=1): value(n){} voidset_value(intn){ value=n; } show_obj(char*name){ cout< "< } private: intvalue; } //测试ex_class类 main() { //用ex_class创建对象 ex_classa,b(3); a.show_obj("a"); b.show_obj("b"); a.set_value(100); b.set_value(200); a.show_obj("a"); b.show_obj("b"); } #include #include //定义双亲(parent)类 classparent{ charf_name[20]; charm_name[20]; chartel[10]; public: //parent类的构造函数,其带有缺省值 parent(char*p1="",char*p2="",char*p3=""){ strcpy(f_name,p1); strcpy(m_name,p2); strcpy(tel,p3); } //显示parent对象的数据 show_parent(void){ cout<<"Theparent: "< cout<<"father'sname: "< cout<<"mother'sname: "< cout<<"tel: "< } }; //显示student对象的数据 show_student(void){ cout<<"num: "< cout<<"name: "< cout<<"grade: "< pt.show_parent(); } }; //main()函数测试student类的对象 //定义student类 classstudent{ intnum; charname[20]; floatgrade; parentpt; public: //student类的构造函数 student(intn,char*str,floatg,classparentt){ num=n; strcpy(name,str); grade=g; pt=t; } main(void) { //创建双亲对象 parentp1("ZhangHua","LiLan","83665215"); //创建学生对象 studentst(10001,"ZhangHui",91.5,p1); //显示学生信息 cout<<"p1: "< p1.show_parent(); //显示学生信息 cout<<"st: "< st.show_student(); } #include #include //定义timer类 classtimer{ longminutes; public: //定义重载成员函数 settimer(char*m){ minutes=atoi(m); }; //定义重载成员函数 settimer(inth,intm){ minutes=60*h+m; }; //定义重载成员函数 settimer(doubleh){ minutes=(int)60*h; }; longgetminutes(void){returnminutes;}; }; //main()函数的定义 main(void){ timerstart,finish;//创建对象 //使用重载成员函数 start.settimer(8,30); finish.settimer(9,40); cout<<"finish.settimer(9,40)-start.settimer(8,30): "; cout< //使用重载成员函数 start.settimer(2.0); finish.settimer("180"); cout<<"finish.settimer(\"180\")-start.settimer(2.0): "; cout< return0; } #include //定义复数类 classcomplex{ floatreal;//实部 floatimage;//虚部 public: //重载的运算符"+"的原型 complexoperator+(complexright); //重载赋值运算符"="的定义 complexoperator=(complexright); voidset_complex(floatre,floatim); voidput_complex(char*name); }; //重载加法运算符"+"的定义 complexcomplex: : operator+(complexright){ complextemp; temp.real=this->real+right.real; temp.image=this->image+right.image; returntemp; } //重载加赋值运算符"="的定义 complexcomplex: : operator=(complexright){ this->real=right.real; this->image=right.image; return*this; } //定义set_complex()成员函数 voidcomplex: : set_complex(floatre,floatim){ real=re; image=im; } //定义put_complex()成员函数 voidcomplex: : put_complex(char*name){ cout< "; cout< if(image>=0.0)cout<<'+'; cout< } //在main()函数中使用complex类的对象 main(void) { complexA,B,C;//创建复数对象 //设置复数变量的值 A.set_complex(1.2,0.3); B.set_complex(-0.5,-0.8); //显示复数数据 A.put_complex("A"); B.put_complex("B"); //赋值运算,显示结果 C=A; C.put_complex("C=A"); //加法及赋值运算,显示结果 C=A+B; C.put_complex("C=A+B"); return0; } //Exampleofthefriendclass #include //定义YourClass类, classYourClass { //指定YourOtherClass是它的友元类 friendclassYourOtherClass; private: intnum; public: YourClass(intn){num=n;} display(char*YCname){ cout< "; cout< } }; //定义YourOtherClass,它是YourClass类的友元类 classYourOtherClass { public: //使用YourClass类的私有成员 voiddisp1(YourClassyc,char*YCname){ cout< "; cout< } //使用YourClass类的公共成员 voiddisp2(YourClassyc,char*YCname){ yc.display(YCname); } }; //在main()函数中创建和使用YourClass和YourOtherClass类对象 main(void) { //声明YourClass类对象 YourClassa(10),b(100); //显示a和b对象的值 cout<<"YourClass: "< a.display("a"); b.display("b"); //声明YourOtherClass类对象 YourOtherClasstemp; //通过temp显示a和b对象的值 cout<<"YourOtherClass: "< temp.disp1(a,"a"); temp.disp2(b,"b"); } #include //Y类的不完全定义 classY; //X类的定义 classX{ public: voiddisp(Ypy,char*name);//成员函数原型 }; //定义Y类 classY{ //声明本类的友元函数 //X类的disp()为本例的友元函数 friendvoidX: : disp(Ypy,char*name); //普通函数putY()为本例的友元函数 friendvoidputY(Y&yc,char*name); private: //私有成员 intnum; dispY(char*name){ cout< } public: //公共成员函数 Y(intn){ num=n; } }; //X类成员函数的实现部分 voidX: : disp(Ypy,char*name){ cout<<"InX: : disp(): "< py.dispY(name);//访问Y类的私有函数 } //普通函数putY()的定义 voidputY(Y&yc,char*name){ cout<<"IngetY: "< yc.dispY(name); cout< cout< } //在main()函数测试X和Y类的功能 main() { //创建Y和X类的对象 Yy1(100),y2(200); Xx; //不可用Y类对象的私有成员函数显示 //y1.dispY("y1"); //y2.dispY("y2"); //调用X类对象的友元函数显示 x.disp(y1,"y1"); x.disp(y2,"y2"); //用getY函数显示Y类的对象显示 putY(y1,"y1"); putY(y2,"y2"); } #include //定义日期类 classDate { //定义友元重载输入运算符函数 friendistream&operator>>(istream&input,Date&dt); //定义友元重载输出运算符函数 friendostream&operator<<(ostream&output,Date&dt); intmo,da,yr; public: Date(void){//无参数构造函数 yr=0; mo=0; da=0; } Date(inty,intm,intd)//带参数构造函数 { yr=y; mo=m; da=d; } }; //定义">>"运算符重载函数 istream&operator>>(istream&input,Date&dt) { cout<<"Year: "; input>>dt.yr; cout<<"Month: "; input>>dt.mo; cout<<"Day: "; input>>dt.da; returninput; } //定义"<<"运算符重载函数 ostream&operator<<(ostream&output,Date&dt) { output< returnoutput; } //在main()函数中测试Date类的插入(<<)和提取(>>)运算符 voidmain() { //声明对象 Datedt1(2002,5,1),dt2; //显示dt1对象 cout< //对dt2对象进行输入和输出 cin>>dt2; cout< } #include //定义ex类 classex_class { inta; doubleb; public: ex_class(intn=1,doublex=1.0): a(n),b(x){} voidshow_value(char*name){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 题目