




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4-8 定义一个Dog类,包含age,weight等属性,以及对这些属性操作的方法。实现并测试这个类。#include using namespace std;class Dogpublic:void setAge(int a)age=a;int getAge()return age;void setWeight(float w)weight=w;float getWeight()return weight;private:int age;float weight;void main()Dog d;d.setAge(3);d.setWeight(30);cout小狗:d.getAge()岁,重
2、d.getWeight()斤。endl;4-9 设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算矩形的面积。#include #include using namespace std;class Rectanglepublic:Rectangle(int xx1,int yy1,int xx2,int yy2)x1=xx1;y1=yy1;x2=xx2;y2=yy2;float getArea()return fabs(x2-x1)*fabs(y2-y1);private:int x1,y1;int x2,y2;void main()Rect
3、angle rec(0,0,10,20);cout矩形面积:rec.getArea()endl;4-11 定义并实现一个矩形类,有长、宽两个属性,由成员函数计算矩形的面积。#include using namespace std;class Rectanglepublic:Rectangle(int l,int w)length=l;width=w;float getArea()return length*width;private:int length;int width;void main()Rectangle rec(10,20);cout矩形面积:rec.getArea()endl;4
4、-13 定义一个Circle类,有数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。#include using namespace std;const float PI=3.1415;class Circlepublic:Circle(float r)radius=r;float getArea()return radius*PI*PI;private:float radius;void main()Circle c(5.5);cout圆的面积:c.getArea()endl;4-20 定义一个复数类Complex,使得下面的代码能够
5、工作。Complex c1(3,5);Complex c2=4.5;c1.add(c2);c1.show();/源程序如下:#include using namespace std;class Complexpublic:Complex(float r=0.0,float i=0.0)real=r;image=i;void add(Complex b)real=real+b.real;image=image+b.image;void show()coutreal+imageiendl;private:float real; /实部float image; /虚部;void main()Comp
6、lex c1(3,5);Complex c2=4.5; /相当于Complex c2(4.5);c1.add(c2);c1.show();5-7 定义一个Cat类,拥有静态数据成员numOfCats,记录Cat的个体数目;静态成员函数getNumOfCats(),读取numOfCats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。#include using namespace std;class Catpublic:Cat()numOfCats+;Cat()numOfCats-;static int getNumOfCats()return numOfCats;private:
7、static int numOfCats;int Cat:numOfCats=0;void main()cout现在的Cat数量:Cat:getNumOfCats()endl;Cat a;cout现在的Cat数量:a.getNumOfCats()endl;Cat b;cout现在的Cat数量:b.getNumOfCats()endl;5-14 定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数getTotalWeight(),计算二者的重量和。#include using namespace std;class Car;class Boatpublic:Boat(fl
8、oat w)weight=w;friend float getTotalWeight(Boat b,Car c);private:float weight;class Carpublic:Car(float w)weight=w;friend float getTotalWeight(Boat b,Car c);private:float weight;float getTotalWeight(Boat b,Car c)return b.weight+c.weight;void main()Boat boat(3500);Car car(1000);cout船和汽车共重getTotalWeig
9、ht(boat,car)公斤。endl;7-5 定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea()函数计算对象的面积。使用Rectangle类创建一个派生类Square。#include using namespace std;const float PI=3.14;class Shapepublic:Shape(float a,float b=0.0)this-a=a;this-b=b;protected:float a,b;class Rectangle : public Shapepublic:Rectangle(float l,floa
10、t w):Shape(l,w)float getArea()return a*b;class Circle : public Shapepublic:Circle(float r):Shape(r)float getArea()return a*PI*PI;class Square : public Rectanglepublic:Square(float l):Rectangle(l,l)float getArea()return a*a;void main()Rectangle r(10,20);Circle c(5);Square s(10);cout矩形的面积:r.getArea()e
11、ndl;cout圆的面积:c.getArea()endl;cout正方形的面积:s.getArea()endl;7-6 定义一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。#include using namespace std;class Mammalpublic:Mammal()coutConstructing Mammal.endl;Mammal()coutDesstructing Mammal.endl;class Dog : public Mammalpublic:Dog()coutConstructing
12、Dog.endl;Dog()coutDesstructing Dog.endl;void main()Dog d;7-8 定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。#include using namespace std;class Documentpublic:Document(char * n)strcpy(name,n);void show()coutname;private:char name50;class Book : public Documentpublic:Book(char *n,int p):Doc
13、ument(n),pageCount(p)void show()cout书名:;Document:show();coutendl页数:pageCountendl;private:int pageCount;void main()Book book(C+语言程序设计,529);book.show();7-10 定义一个Object类,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。#include using namespace std;class Objectpublic:O
14、bject()coutConstructing Object.endl;Object()coutDestructing Object.endl;void setWeight(int w)weight=w;int getWeight()return weight;private:int weight;class Box : public Objectpublic:Box()coutConstructing Box.endl;Box()coutDestructing Box.endl;void setHeight(int h)height=h;int getHeight()return heigh
15、t;void setWidth(int w)width=w;int getWidth()return width;private:int height;int width;void main()Box box;box.setHeight(5);box.setWidth(10);box.setWeight(8);cout盒子:高box.getHeight(),宽box.getWidth(),重box.getWeight()endl;8-4#include using namespace std;class Counterpublic:Counter(int ii=0)i=ii;void prin
16、t()couti=iendl;Counter operator +(int a)Counter temp;temp.i=i+a;return temp;private:int i;void main()Counter c;c=c+3;c.print();c=c+5;c.print();8-5#include using namespace std;class Mammalpublic:virtual void speak()coutMammal Speak!endl;class Dog:public Mammalpublic:virtual void speak()coutDog Speak!speak();8-7#include using
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件流程图萃取
- 詹天佑教学课件
- 课件模板网教学课件
- 绘本《见面》课件大纲
- 自然教育农耕课件
- 教师篮球操培训
- 冬日雪人绘画课件
- 美术培训心得总结
- 儿科肺部听诊课件
- 课件显示黑边问题
- 2025年时事政治考试100题及答案
- 农业产业强镇建设资金申请项目可行性研究及风险评估报告
- 秋形势与政策正确认识中国经济热点问题-教案2025版本
- 药品注册审评员考核试题及答案
- GB/T 7251.10-2025低压成套开关设备和控制设备第10部分:规定成套设备的指南
- 森林防灭火知识培训材料课件
- 成本管控的课件
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- CT检查的课件教学课件
- 年产50万吨钙系列产品项目可行性研究报告
- 提高中小学班主任和思政课教师专业素养和育人能力的策略及实施路径
评论
0/150
提交评论