1、C+练习1.用C+写一个程序,求一个有10个元素的数组中的最大元素。 # includeusing namespace std;class Array_maxpublic: void set_value(); void max_value(); void show_value();private: int array10; int max;void Array_max:set_value() for(int i=0;iarray10;void Array_max:max_value() max=array0; for(int i=1;imax) max=arrayi;void Array_ma
2、x:show_value() coutmax=maxendl;int main() Array_max amax; amax.set_value(); amax.max_value(); amax.show_value();return 0;2.定义一个Time类(包括hour,minute,sec),要求输入和输出2个对象t1和t2。方法一(引用对象)# includeusing namespace std;struct Time /class Time Public: int hour; int minute; int sec;int main()void set_time(Time&);
3、 void show_time(Time&); Time t1; set_time(t1); show_time(t1); Time t2; set_time(t2); show_time(t2); return 0;void set_time(Time&t) cint.hourt.minutet.sec;void show_time(Time&t) coutt.hour:t.minute:t.secendl;方法二:# includeusing namespace std;class Timeprivate: int hour; int minute; int sec;public: voi
4、d set_time(); void show_time();void Time:set_time() cinhourminutesec;void Time:show_time() couthour:minute:secendl;int main() Time t1; t1.set_time(); t1.show_time(); Time t2; t2.set_time(); t2.show_time(); return 0;3.构造函数(1)# includeusing namespace std;class Boxpublic :Box (int l,int w,int h):length
5、(l),width(w),height(h)int volume();private : int length,width,height;int Box:volume() return (length*width*height);int main()Box box1(10,10,10); coutThe volume of box1 is :box1.volume()endl; Box box2(12,12,12); coutThe volume of box2 is :box2.volume()endl; return 0;(2)# includeusing namespace std;cl
6、ass Boxpublic :Box (int l=10,int w=10,int h=10);/在声明构造函数时指定默认参数int volume();private : int length,width,height;Box:Box(int l,int w,int h)/在定义构造函数时可不必再指定参数的默认值length=l; width=w; height=h;int Box:volume() return (length*width*height);int main()Box box1; coutThe volume of box1 is :box1.volume()endl; Box
7、 box2(12); coutThe volume of box2 is :box2.volume()endl; Box box3(18,10); coutThe volume of box3 is :box3.volume()endl; Box box4(15,12,20); coutThe volume of box4 is :box4.volume()endl; return 0;4.对象数组# includeusing namespace std;class Box public :Box(int l,int w,int h):length(l),width(w),height(h)i
8、nt volume();private : int length; int width; int height;int Box:volume() return(length*width*height);int main()Box a3= Box(25,10,12), Box(15,18,20), Box(16,20,26);coutThe volume of a0 is:a0.volume()endl;coutThe volume of a1 is:a1.volume()endl;coutThe volume of a2 is:a2.volume()endl;return 0;5.对象指针#
9、includeusing namespace std;class Time public :Time(int h,int m,int s):hour(h),minute(m),sec(s) int hour; int minute; int sec; void show_time();void Time:show_time() couthour:minute:secendl;int main()Time t1(16,43,20); int *p1=&t1.hour; cout*p1show_time();/(*p2).show_time(); void (Time:*p3)(); p3=&Ti
10、me:show_time; (t1.*p3)(); return 0;6.对象的常引用# includeusing namespace std;class Time public : Time(int h,int m,int s):hour(h),minute(m),sec(s) int hour; int minute; int sec; void fun(Time &t);/形参t是Time类对象的引用/函数声明 void show_time();void Time:show_time() couthour:minute:secendl;void fun(Time &t) t.hour=1
11、8; t.minute=12;int main()Time t1(16,43,20); fun(t1); t1.show_time(); return 0;7.静态数据成员引用# includeusing namespace std;class Boxpublic : Box (int l=10,int w=10):length(l),width(w) int volume(); static int height; int length,width;int Box:volume() return (length*width*height);int Box:height=12;/静态数据成员可
12、以初始化,但只能在类外进行初始化int main()Box box1,box2(12,10); coutThe volume of box1 is :box1.volume()endl; coutThe volume of box2 is :box2.volume()endl; return 0;8.静态成员函数引用# includeusing namespace std;class Studentpublic : Student(int n,int a,float s ):num(n),age(a),score(s) void total(); int volume(); static fl
13、oat average();private: int num; int age; float score; static float sum; static int scount;float Student:sum=0;int Student:scount=0;void Student:total() sum+=score;/sum=sum+score; scount+;float Student:average() return(sum/scount);int main()Student stu4= Student(1101,18,70), Student(1103,17,69), Stud
14、ent(1104,18,78), Student(1106,19,80);int n; coutn; for(int i=0;in;i+) stui.total(); coutThe average score of n students is:Student:average()endl; return 0;9.将普通函数声明为友元函数(1)# includeusing namespace std;class Time public: Time(int h,int m,int s):hour(h),minute(m),sec(s) friend void display(Time&t); pr
15、ivate: int hour; int minute; int sec;void display(Time&t) coutt.hour:t.minute:t.secendl; int main() Time t1(22,55,30); display(t1); return 0; (2)# includeusing namespace std;class Date;class Timepublic: Time(int h,int m,int s):hour(h),minute(m),sec(s) friend void display(Time &); private: int hour;
16、int minute; int sec;void display(Time &t) coutt.hour:t.minute:t.secendl;class Date public: Date(int y,int m,int d):year(y),month(m),day(d) friend void display(Date &);private: int year; int month; int day;void display(Date &d) coutd.year/d.month/d.dayendl;int main()Time t1(22,55,30); Date d1(2012,5,
17、18); display(d1); display(t1); return 0; 10.友元成员函数# includeusing namespace std;class Date;class Timepublic: Time(int h,int m,int s):hour(h),minute(m),sec(s) void display(Date &); private: int hour; int minute; int sec;class Date public: Date(int y,int m,int d):year(y),month(m),day(d) friend void Tim
18、e:display(Date &);private: int year; int month; int day;void Time:display(Date &d) coutd.year/d.month/d.dayendl; couthour:minute:secendl;int main()Time t1(22,55,30); Date d1(2012,5,18); t1.display(d1); return 0; 11.运算符重载(1)# includeusing namespace std;class Complex public : Complex()real=0;imag=0; C
19、omplex(int r,int i):real(r),imag(i) Complex operator +(Complex &c2); void display(); private: int real; int imag;Complex Complex:operator +(Complex &c2)/operator +是一个函数名,是类Complex的成员函数Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;void Complex:display() cout(real,imagi)endl;int main()
20、Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; coutc1=;c1.display(); coutc2=;c2.display(); coutc1+c2=;c3.display(); return 0;(2)重载流插入运算符“”:# includeclass Complexpublic:Complex()real=0;imag=0;Complex(int r,int i)real=r;imag=i;Complex operator+(Complex &c2);friend ostream &operator (ostream &,Complex &);priv
21、ate: int real; int imag;Complex Complex:operator+(Complex &c2) return Complex(real+c2.real,imag+c2.imag);ostream &operator (ostream &output,Complex &c)output=0) output+; outputc.imagi endl; return output;int main()Complex c1(2,4),c2(6,-10),c3;c3=c1+c2;coutc1=c1endlc2=c2endlc1+c2=c3endl;return 0;12.派
22、生类的构造函数和析构函数:# include# includeusing namespace std;class Studentpublic : Student(int n,string nam,float m) num=n; name=nam; mark=m; Student()coutnumendl;protected: int num; string name; float mark;class Student1:protected Studentpublic :Student1(int n,string nam,float m,int a,char s):Student(n,nam,m
23、) age=a; sex=s; void show() cout学号:numendl; cout姓名:nameendl; cout分数:markendl; cout年龄:ageendl; cout性别:sexendl;Student1()coutnameendl;private: int age; char sex;int main()Student1 stud1(1101,zhu xuhong,100,18,m); Student1 stud2(1102,zhang xu,80,20,m); cout学生1信息:endl; stud1.show(),coutendl; cout学生2信息:e
24、ndl; stud2.show(),coutendl; return 0;13.有子对象的派生类的构造函数:# include# includeusing namespace std;class Studentpublic : Student(int n,string nam,float m) num=n; name=nam; mark=m; void display() cout学号:numendl姓名:nameendl分数:markendl; protected: int num; string name; float mark;class Student1:protected Stude
25、ntpublic : Student1(int n,string nam,float m,int n1,string nam1,float m1,int a,char s): Student(n,nam,m),monitor(n1,nam1,m1) age=a; sex=s; void show() cout学生信息:endl; display(); cout年龄:ageendl; cout性别:sexendl;void show_monitor() coutendl班长信息:endl; monitor.display();private: Student monitor; int age; char sex;int main()Student1 stud1(1101,zhu xuhong,98,1107,xiao yin,100,18,m); stud1.show(); stud1.show_monitor(); return 0;14.多层派生时的构造函数:# include# includeusing namespace std;class Student public: Student(int n,string nam) num=n; name=nam; void display() cout学号:numendl; cout姓名:nameendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1