ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:17.45KB ,
资源ID:5448192      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5448192.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象C习题参考解答.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象C习题参考解答.docx

1、面向对象C 习题参考解答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.setWeigh

2、t(30); cout小狗:d.getAge()岁,重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:

3、 int x1,y1; int x2,y2;void main() Rectangle 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() R

4、ectangle rec(10,20); cout矩形面积:rec.getArea()endl;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

5、); cout圆的面积:c.getArea()endl;4-20 定义一个复数类Complex,使得下面的代码能够工作。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+i

6、mageiendl; private: float real; /实部 float image; /虚部;void main() Complex 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() num

7、OfCats+; Cat() numOfCats-; static int getNumOfCats() return numOfCats; private: 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属性,定义二者的一个友元函数getT

8、otalWeight(),计算二者的重量和。#include using namespace std;class Car;class Boatpublic: Boat(float 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,C

9、ar c) return b.weight+c.weight;void main() Boat boat(3500); Car car(1000); cout船和汽车共重getTotalWeight(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

10、) this-a=a; this-b=b; protected: float a,b;class Rectangle : public Shapepublic: Rectangle(float l,float 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):Rect

11、angle(l,l) float getArea() return a*a; ;void main() Rectangle r(10,20); Circle c(5); Square s(10); cout矩形的面积:r.getArea()endl; cout圆的面积:c.getArea()endl; cout正方形的面积:s.getArea()endl;7-6 定义一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。#include using namespace std;class Mammalpublic: Mamm

12、al() coutConstructing Mammal.endl; Mammal() coutDesstructing Mammal.endl; ;class Dog : public Mammalpublic: Dog() coutConstructing Dog.endl; Dog() coutDesstructing Dog.endl; ;void main() Dog d;7-8 定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。#include using namespace std;class Documentpu

13、blic: Document(char * n) strcpy(name,n); void show() coutname; private: char name50;class Book : public Documentpublic: Book(char *n,int p):Document(n),pageCount(p) void show() cout书名:; Document:show(); coutendl页数:pageCountendl; private: int pageCount;void main() Book book(C+语言程序设计,529); book.show()

14、;7-10 定义一个Object类,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。#include using namespace std;class Objectpublic: Object() coutConstructing Object.endl; Object() coutDestructing Object.endl; void setWeight(int w) weight=w; int getWeight() return weight; private:

15、int weight;class Box : public Objectpublic: Box() coutConstructing Box.endl; Box() coutDestructing Box.endl; void setHeight(int h) height=h; int getHeight() return height; void setWidth(int w) width=w; int getWidth() return width; private: int height; int width;void main() Box box; box.setHeight(5);

16、 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 print() couti=iendl; Counter operator +(int a) Counter temp; temp.i=i+a; return temp; private: int i;void main() Counter

17、 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 namespace std;class Pointpublic: Point(int x=0,int y=0) X=x; Y=y; void p

18、rint() cout(X,Y)endl; Point& operator+() X+; Y+; return *this; Point operator+(int) Point temp=*this; X+; Y+; return temp; private: int X,Y;void main() Point p; (+p).print(); (p+).print(); (+p).print();仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur fr de

19、n persnlichen fr Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l tude et la recherche uniquement des fins personnelles; pas des fins commerciales. , , . 以下无正文 仅供个人用于学习、研究;不得用于商业用途。For personal use only in study and research; not for commercial use.Nur fr den persnlichen fr Studien, Forschung, zu kommerziellen Zwecken verwendet werden.Pour l tude et la recherche uniquement des fins personnelles; pas des fins commerciales. , , . 以下无正文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1