1、,2000); Employee e2(zhang,3000); Employee e3(hong,2500); e3.print();2.由父类图形派生矩形、圆形、三角形三个子类,父类中声明了求面积的函数,在各子类中重写各自的构造函数、面积函数,但面积函数要保持相同的函数名,即达到面积函数的多态.分别声明对象进行检验.Shape.hclass shape shape(void); shape(void); void getArea();class rectangle:public shape rectangle(int i,int j); void getRec(); int x,y; in
2、t area;class circle: circle(int i); void getCir(); int r; double area;class triangle:public shape /等边三角形 triangle(int i); void getTri(); int a;Shape0.cppshape.hrectangle:rectangle(int i,int j) x=i; y=j; void rectangle:getRec()rectangles length=x rectangles width=ygetArea() area=x*y;s area=area circl
3、e:circle(int i) r=i; void circle:getCir()circles radius=r area=3.14*r*r; triangle:triangle(int i) a=i; void triangle:getTri()trianglea area=0.433*a*a;Shape.cppshape:shape(void)shape(void) rectangle rec(4,5); rec.getRec(); rec.getArea(); circle cir(6); cir.getCir(); cir.getArea(); triangle tri(3); tr
4、i.getTri(); tri.getArea();3.对象数组,以学生成绩为例Classstu.hclass classstu classstu(void); classstu(void); void set(int i,char *a,float s); void print();/private: int id; float score;Classstu.cppclassstu.hclassstu:classstu(void)classstu(void)void classstu:set(int i, char *c, float s) id=i; strcpy_s(name,c); s
5、core=s;print()学号:id 姓名:name 成绩:scoreMain.cppclassstu stu4; stu0.set(1,aa,33); stu1.set(2,bb,32); stu2.set(3,cc,48); stu3.set(4,dd,25); stu0.print(); stu1.print(); stu2.print(); stu3.print();for(int i=0;istui+1.score) stui+1=stui;coutthe highest is stu3.score/8.5 拷贝构造函数与赋值运算符(=)有何联系与区别?#include stdaf
6、x.hclass Point int m_x,m_y; Point(int x=0, int y=0) m_x=x; m_y=y; Point(Point &obj) m_x=obj.m_x; m_y=obj.m_y; void print()m_x m_y Point a(2,3);/调用一般构造函数 Point b(a); /调用拷贝构造函数 Point c=a; /等价于c(a),调用拷贝构造函数,创建对象并赋值 Point d; /调用一般构造函数 d=a; /使用赋值运算符,不重建创建对象 a.print(); b.print(); c.print(); d.print();/8.6
7、 能否给对象数组赋初值 Point(int x=0, int y=0)m_x=x; m_y=y; Point arr2=Point(1,1),Point(2,2);/能给对象数组赋初值 for(int i=0;2; arri.print();/8.15 分析程序的输出结果,构造函数与析构函数class A A(); A(int i,int j); A(); void Set(int i, int j) a=i; b=j; int a,b;A:A() a=0; b=0;Default constructor called.A(int i, int j) a=i;Constructor a=,b=
8、bA()Destructor called. a=Starting1. A a3; iclass Triangle Triangle(float L, float H) Length = L; Hight = H; float hypot() return sqrt(Length*Length + Hight*Hight); float area() return Length*Hight/2; float Length; float Hight; Triangle t(3,4);t.hypot()t.area()/8.18 定义一个Circle 类,包含数据成员Radius(半径)和计算周长
9、和面积的成员函数,并构/造Circle 的对象进行测试。const float PI=3.14159;class Circle Circle(float r) radius = r; float perimeter() return 2*PI*radius; return PI*radius*radius; float radius; Circle c1(3.);c1.perimeter()c1.area()自己编的:class circle circle(int r) rad=r; double area() return 3.14*rad*rad; int rad; circle c(1)
10、;c.area()class Date Date(int y=1900,int m=1,int d=1) year = y; month = m; day = d; void Output()year/monthday int year; int month; int day;class Person Person(Date d=Date(1993,1,1), int n=0, char* s=NoName, bool b=0):birthday(d) number = n; name = new charstrlen(s)+1; if (name!=NULL) strcpy(name, s)
11、; sex = b; Person(Person& p) number = p.number; name = new charstrlen(p.name)+1; strcpy(name, p.name); sex = p.sex; birthday = p.birthday; Person() delete name; name = NULL; void Input();number=number; coutPlease input the name:Please input the sex:(0 or 1)Please input the birthday(year/month/day):
12、int y,m,d;ymd; birthday = Date(y,m,d); Person p1; Person p2(p1); p1.Input(); p1.Output(); p2.Output(); Person p3(Date(1998,12,12),1,zhangsan,1); p3.Output();数组和指针1已知一个数组a10,并在其中保存了下列数据:6、12 、34、56、78、89、90、409、800、2300 要求:(1)从键盘上任意输入一个数,并将该数插入到数组的合适位置。(要求:用指针完成)。(2)打印出插入前和插入后的数组内容。 int a10=6,12,34,5
13、6,78,89,90,409,800,2300 ; int b,c;请输入一个数:b;请输入想插入的位置(数组的哪个元素-9)c; int d11; int*pa=a; int*pb=d; for(int j=0;jj+)/对数组b赋值 *pb+=*pa+; pb=d; *(pb+c)=b; for(int k=c+1;k11;k+) *(pb+k)=ak-1;插入前的数组是:/输出数组 for(int m=0;m10;m+)am插入后的数组是:*(pb+i)用指针实现字符串顺序交换 char s=abcdefghijklmnopqrstuvwxyz char ch,*t=&sstrlen(s
14、)-1; for (int i=0;(strlen(s)-1)/2; ch = si ; si =*(t-i) ; *(t-i) = ch ; for (int k=0;strlen(s);k+) /可以直接写成:s;sk; /省略普通转换,调换字符串顺序 char s10=student, t; int i=0, j=strlen(s)-1; while(ij) t=si; si=sj; sj=t; i+; j-;s0; ai=n%b; n/=b; for(int j=i-1;j=0;j-)aj;运算符?iostream.hclass A A():a(0) A& operator + () a+; return *this; A operator +(int) A temp(*this); a+; return temp; void display() coutprotected: int a;void main() A a; (+a).display(); a+.display();二维数组转换为一维数组long sum_array(int array, int elements)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1