收藏 分销(赏)

面向对象程序设计(C++)复习题.pdf

上传人:丰**** 文档编号:4753404 上传时间:2024-10-12 格式:PDF 页数:26 大小:184.29KB
下载 相关 举报
面向对象程序设计(C++)复习题.pdf_第1页
第1页 / 共26页
面向对象程序设计(C++)复习题.pdf_第2页
第2页 / 共26页
面向对象程序设计(C++)复习题.pdf_第3页
第3页 / 共26页
面向对象程序设计(C++)复习题.pdf_第4页
第4页 / 共26页
面向对象程序设计(C++)复习题.pdf_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、一一 选择题(共选择题(共 45 题)题)1对类的构造函数和析构函数描述正确的是()。A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载2继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A)规律性 B.传递性 C.重复性 D.多样性3假设 OneClass 为一个类,则该类的复制初始化构造函数的声明语句为()。A.OneClass(OneClass p);B.OneClass&(OneClass p);C.OneClass(OneClass&p);

2、D.OneClass(OneClass *p);4对于结构中定义的成员,其默认的访问权限为()。A.public B.protected C.private D.static5下面对静态数据成员的描述中,不正确的是()。A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以在类体内进行初始化C.静态数据成员能受 private 控制符的作用D.静态数据成员调用前必须初始6.C+中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。A.复用 B.继承 C.封装 D.引用7.假定 AA 为一个类,a 为该类公有的数据成员,x 为该类的一个对象,则访

3、问 x 对象中数据成员 a 的格式为()。A.x(a)B.xa C.x-a D.x.a 9.对于一个类的构造函数,其函数名与类名()。A.完全相同 B.基本相同 C.不相同 D.无关系10.一个类的构造函数通常被定义为该类的()成员。A.公有 B.保护 C.私有 D.友元11.一个类的析构函数通常被定义为该类的()成员。A.私有 B.保护 C.公有 D.友元12.一个类的静态数据成员所表示属性()。A.是类的或对象的属性 B.只是对象的属性 C.只是类的属性 D.类和友元的属性 13.类的析构函数的作用是()。A一般成员函数 B类的初始化 C对象初始化 D删除对象之前的善后工作14.下列对基类

4、和派生类关系的描述中,错误的是()。A派生类是基类的具体化 B派生类是基类的子集 C派生类是基类定义的延续 D派生类是基类的组合15.下列对派生类的描述中,错误的是()。A一个派生类可以作为另一个派生类的基类 B派生类至少有一个基类 C派生类的缺省继承方式是 private D派生类只继承了基类的公有成员和保护成员16.下列对继承的描述中,错误的是()。A析构函数不能被继承 B派生类也是基类的组合 C派生类的成员除了它自己的成员外,还包含了它的基类的成员 D派生类中继承的基类成员的访问权限到派生类保持不变17.派生类的对象对它的基类成员中()是可以访问的。A公有继承的公有成员 B公有继承的私有

5、成员 C公有继承的保护成员 D私有继承的公有成员18.下列说法错误的是()。A公有继承的基类中的 public 成员在派生类中仍是 public 的 B公有继承的基类中的 private 成员在派生类中仍是 private 的 C私有继承的基类中的 public 成员在派生类中仍是 private 的 D保护继承的基类中的 public 成员在派生类中仍是 protected 的19.下面叙述错误的是()。A基类的 protected 成员在派生类中仍然是 protected B基类的 protected 成员在 public 派生类中仍然是 protected 的C基类的 protected

6、 成员在 private 派生类中是 private 的 D基类的 protected 成员不能被派生类的对象访问20设置虚基类的声明中,正确的是()。A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码21关于虚函数的描述中,正确的是()。A虚函数是一个静态成员函数 B虚函数是一个非成员函数 C虚函数即可以在函数说明定义,也可以在函数实现时定义 D派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型22下列描述中,()是抽象类的特征。A可以说明虚函数 B可以进行构造函数重载 C可以定义友元函数 D不能说明其对象23.静态数据成员的初始化是在()中进行的。A.构造函数 B.任

7、何成员函数 C.所属类 D.全局区24.当将一个类 A 或函数 f()说明为另一个类 B 的友元后,类 A 或函数 f()能够直接访问类B 的()。A.只能是公有成员 B.只能是保护成员 C.只能是除私有成员之外的任何成员 D.具有任何权限的成员25.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。A.作为友元函数重载的 1 元运算符 B.作为成员函数重载的 1 元运算符 C.作为友元函数重载的 2 元运算符 D.作为成员函数重载的 2 元运算符26.关于运算符重载,下列说法正确的是()。A.重载时,运算符的优先级可以改变。B.重载时,运算符的结合性可以改变。C.重载时,运算

8、符的功能可以改变。D.重载时,运算符的操作数个数可以改变。27.从一个基类派生出的各个类的对象之间()。A.共享所有数据成员,每个对象还包含基类的所有属性 B.共享部分数据成员,每个对象还包含基类的所有属性 C.不共享任何数据成员,但每个对象还包含基类的所有属性 D.共享部分数据成员和函数成员28.C+的继承性允许派生类继承基类的()。A.部分特性,并允许增加新的特性或重定义基类的特性 B.部分特性,但不允许增加新的特性或重定义基类的特性 C.所有特性,并允许增加新的特性或重定义基类的特性 D.所有特性,但不允许增加新的特性或重定义基类的特性29.派生类的成员函数可以直接访问基类的()成员。A

9、.所有 B.公有和保护 C.保护和私有 D.私有30.当派生类中有和基类一样名字的成员时,一般来说,()。A.将产生二义性 B.派生类的同名成员将覆盖基类的成员 C.是不能允许的 D.基类的同名成员将覆盖派生类的成员31关于纯虚函数和抽象类的描述中,错误的是()。A纯虚函数是一种特殊的虚函数,它没有具体的实现 B抽象类是指具体纯虚函数的类 C一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类 D抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出32如果一个类至少有一个纯虚函数,那么就称该类为()。A抽象类 B虚函数 C派生类 D以上都不对33要实现动态联编,必须通过()调用虚函数。A对

10、象指针 B成员名限定 C对象名 D派生类名 34.以下()成员函数表示虚函数。Avirtual int vf(int);Bvoid vf(int)=0;Cvirtual void vf()=0;Dvirtual void vf(int);40.下面描述中,正确的是()。Avirtual 可以用来声明虚函数 B含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 C即使基类的构造函数没有参数,派生类也必须建立构造函数 D静态数据成员可以通过成员初始化列表来初始化35.在成员函数中进行双目运算符重载时,其参数表中应带有()个参数。A.0 B.1 C.2 D.336.在重载一运算符时,若运算符函数

11、的形参表中没有参数,则不可能的情况是()。A.该运算符是一个单目运算符。B.该运算符函数有一个隐含的参数 this。C.该运算符函数是类的成员函数。D.该运算符函数是类的友元函数。37.下面对于友元函数描述正确的是()。A友元函数的实现必须在类的内部定义B友元函数是类的成员C友元函数破坏了类的封装性和隐藏性D友元函数不能访问类的私有成员38.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该当成员的访问权限定义为()。Apublic Bprotected Cprivate Dststic39.下面对静态数据成员的描述中,正确的是()。A静态数据成员是类的所有对象共享的数据B类的每

12、一个对象都有自己的静态数据成员C类的不同对象有不同的静态数据成员值D静态数据成员不能通过类的对象调用40.C+类体系中,不能被派生类继承的有()。A构造函数 B虚函数 C静态成员函数 D赋值操作函数41 下列虚基类的声明中,正确的是()。Aclass virtual B:public A Bvirtual class B:public A Cclass B:public A virtual Dclass B:virtual public A 42 在下面的表达式中,不表示虚继承的是()。Avirtual public Bpublic virtual Cpublic D virtual43.下列

13、关于动态联编的描述中,错误的是()。A动态联编是以虚函数为基础 B动态联编是运行时确定所调用的函数代码的 C动态联编调用函数操作是指向对象的指针或对象引用 D动态联编是在编译时确定操作函数的44.下面 4 个选项中,()是用来声明虚函数的。Avirtual Bpublic Cusing Dfalse45.编译时的多态性可以通过使用()获得。AA虚函数和指针 B重载函数和析构函数 C虚函数和对象 D虚函数和引用二二 填空题(共填空题(共 33 题)题)1.重载插入运算符时,其运算符函数的返回值类型应当是 ostream&。2.派生类可以定义其基类 中不具备的数据和操作。3.对象将其大部分实现细节

14、隐藏起来,这种机制称为 封闭。4.建立类和类的对象时,系统对类 不分配内存,系统对对象 分配内存。5.基类和派生类的关系称为继承和派生。6.当保护继承时,基类的公有或保护 成员在派生类中成为保护成员,派生类对象不能直接访问基类的任何 成员。7.C支持两种多态性:编译 时的多态性(重载)和运行 时的多态性(虚函数)。、8.在 C+中定义类时,通常是利用变量 描述对象的“特征”;利用函数 描述对象的“行为”。9.假定用户为类 AB 定义了一个构造函数AB(int aa,char*bbNULL):a(aa),b(bb)”,则该类中至少包含有 2 个数据成员。10.类是对象的抽象;而对象则是类的具体实

15、例。11.如果不做特殊说明,类成员的默认访问权限是私有;结构成员的默认访问权限是公有。12.在定义对象的同时初始化其成员变量,需要利用构造函数,用于初始化变量的值可以是固定的常量,也可以通过参数 获得。13.在私有继承关系下,基类的公有成员和保护成员将成为派生类中的私有成员,它们只能由派生类的成员函数来访问;基类的私有成员将成为派生类中的不可访问的成员。14.在保护继承中,基类中的公有成员、保护成员是可见的。15.面向对象方法构造的系统,其基本单位是对象 。16.生成一个派生类对象时,先调用基类的构造函数,然后调用派生类的构造函数。17.AA operator+(AA x)表示为运算符重载。1

16、8.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上类名 和两个冒号分隔符。19.若采用 x.abc(y)表达式调用一个成员函数,在成员函数中使用的*this 就代表了类外的 x对象。20.假定用户没有给一个名为 AB 的类定义析构函数,则系统为其定义的析构函数为AB()。21.类的成员按访问权限可分为三类:公有 、私有、保护。22在一个类中定义复制构造函数的目的,是为了当利用该类的一个对象初始化另一个对象时,能够避免这两个对象的同一指针同时指向同一块 地址 。23.假定 AB 为一个类,则执行“AB a10;”语句时,系统自动调用该类构造函数的次数为 1

17、0。24.假定要把 aa 定义为 AB 类中的一个常量整数型数据成员,则定义语句为 const int aa;。25假定 AB 为一个类,则该类的复制构造函数的函数头为 AB(AB&)。26假定 AB 为一个类,该类中含有一个指向动态数组空间的指针成员 pa,则在该类的析构函数中应该包含有一条 delete pa 语句。27.静态成员函数只能访问类的静态数据成员,非静态成员函数 访问类的非静态数据成员。28.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上 friend 的限定。29.一个单目运算符作为类的成员函数重载时有 0 个参数;如果作为友元函数重载,则有1

18、 个参数。30.若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上基类名和类区分符。31.若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以 virtual 的方式直接继承它。32.引进虚基类的根本目的是为了消除二义性。33.在每个成员函数中,隐含的第一个参数的参数名为 this 指针。三三 写出下列程序的运行结果写出下列程序的运行结果1.(1)#includestruct abchar a5;float b;void main()ab x=Li,89.6;coutx.atx.bendl;2.(2)#includestruct abchar a;f

19、loat b;void f(ab&y)y.a=W;y.b=90.5;void main()ab x=L,89.5;f(x);coutx.atx.bendl;3.(3)#include#includeclass A char a;public:A(char*s)a=new charstrlen(s)+1;strcpy(a,s);coutaendl;A()delete a;coutDestructor!endl;void main()A x(Li Ming);A y(Zhang);4.(4)#includeint n=0;class A int a;public:A(int aa=0)a=aa;n

20、+;A()n-;coutnendl;void show()coutnendl;void main()A a;a.show();A x2;x1.show();a.show();5.(5)#include class A int a,b;public:A()a=b=0;couta bendl;A(int aa,int bb)a=aa;b=bb;couta bendl;void main()A x,y(10,5);6.(6)#includeclass BB int a,b;public:BB(int i=0,int j=1)a=i;b=j;BB operator+(BB c)BB d;d.a=a+c

21、.a*10;d.b=b+c.b*10;return d;BB operator-(BB c)BB d;d.a=a*c.a;d.b=b*c.b;return d;void show()cout(a,b)endl;void main()BB x(2,6),y(5,5),z;z=x+y;z.show();z=x-y;z.show();7.(7)#includeclass EX intx,y;public:EX(int i=0,int j=1)x=i;y=j;EX operator*(EX z)EX d;d.x=x*z.x;d.y=y*z.y;return d;EX operator/(EX c)EX

22、 d;d.x=x-c.x;d.y=y-c.y;return d;void show()cout(a,b)endl;void main()EX a(30,10),b(2,5),c;c=a*b;c.show();c=a/b;c.show();8.(8)#include class Point int x,y;public:Point()x=1;y=1;Point()coutPoint x,y is deleted.endl;void main()Point a;9.(9)#include#include int count=0;class Point int x,y;public:Point()x

23、=1;y=1;count+;Point()count-;;void display()cout There are countpoints.endl;void main()Point a;display();Point b5;display();display();10.(10)#include class EX1 int a,b;public:EX1()a=b=1;couta bendl;EX1(int aa,int bb=100)a=aa;b=bb;couta bendl;void main()EX1 x,y(10,2);EX1z(200);11.(11)#include#include

24、class Csample int i;public:Csample()cout constructor 1 endl;i=0;Csample(int val)cout Constructor 2 endl;i=val;void Display()couti=iendl;Csample()coutDestructorendl;void main()Csample a,b(10);a.Display();b.Display();12.(12)#includeclass Csample private:int i;static int k;public:Csample();void Display

25、();int Csample:k=0;Csample:Csample()i=0;k+;void Csample:Display()couti=i,k=kendl;void main()Csample a,b;a.Display();b.Display();13.(13)#include#includestruct A char c 20;float f;void f(A&t)strcpy(t.c,”MALIANG”);t.f=70.5;void main()A z=“LIMING”,77.5;f(z);coutz.ctz.fendl;14.(14)#include class Csample

26、int i;public:Csample();void Display();Csample();Csample:Csample()coutConstructor,;i=0;void Csample:Display()couti=i,;Csample:Csample()coutDestructorendl;void main()Csample a;a.Display();15.(15)#includeclass base public:void show()cout调用基类函数 show().n;class derived:public base public:void show()cout调用

27、派生类函数 show().n;void main()base a1;a1.show();derived a2;a2.show();16.(16)#includeclass ROOT public:int small;ROOT(int n=2)small=n;void showsmall()coutsmall=smallendl;class Cder1:public ROOT public:Cder1(int m):ROOT(m);class Cder2:public ROOT public:int small;Cder2(int n=0)small=n;void main()ROOT A;Cd

28、er1 bb(3);Cder2 cc;A.showsmall();bb.showsmall();cc.showsmall();17.17.#include#include class CD char*a;char b20;public:CD()a=new char10;strcpy(a,喂,);strcpy(b,你好!);void Init(char*aa,char*bb)a=new charstrlen(aa)+1;strcpy(a,aa);strcpy(b,bb);void Output()couta bendl;void main()CD dx,dy;dx.Output();dy.Ini

29、t(中国,北京,2008);dy.Output();18.18.#includeclass A int a;public:A(int aa=0):a(aa)couta;A()cout对象被删除n;void main()A*p;A x2=10,20,y=40;coutendl;p=new A1;coutendl;delete p;coutendl;19.19.#includeclass A int a10;int n;public:A(int aa,int nn):n(nn)for(int i=0;in;i+)ai=aai;int Get(int i)return ai;int SumA(int

30、 n)int s=0;for(int j=0;jn;j+)s+=aj;return s;void main()int a=1,1,2,3,5,8;A x(a,3),y(a,4);int d=1;for(int i=0;i3;i+)d*=x.Get(i);int f=y.SumA(4);coutd=dendl;coutf=fendl;20.20.#includeclass BB int a,b;public:BB(int i=0,int j=1)a=i;b=j;BB operator+(BB c)BB d;d.a=a+c.a;d.b=b+c.b;return d;BB operator-(BB

31、c)BB d;d.a=a-c.a;d.b=b-c.b;return d;void show()cout(a,b)endl;void main()BB x(10,15),y(5,7),z;z=x+y;z.show();z=x-y;z.show();21.21.#include#include class Point int x,y;public:Point(int x1=0,int y1=0):x(x1),y(y1)coutPoint:x yn;Point()coutPoint des!n;class Text char text100;public:Text(char*str)strcpy(t

32、ext,str);coutText con!n;Text()coutText des!n;class CircleWithText:public Point,public Text public:CircleWithText(int cx,int cy,char*msg):Point(cx,cy),Text(msg)coutPoint with Text con!n;CircleWithText()coutPoint with Text desn;void main()CircleWithText cm(3,4,hello);22.22.#includeclass Croot public:i

33、nt x;Croot()x=2;coutConstructor1.n;Croot(int n)x=n;coutConstructor2.n;void showsmall()coutx=xendl;class Cder1:public Croot public:Cder1(int m):Croot(m);class Cder2:public Croot public:int x;Cder2(int n=0)x=n;void main()Croot A;Cder1 bb(4);Cder2 cc;A.showsmall();bb.showsmall();cc.showsmall();23.23.#i

34、ncludeclass Croot public:int small;Croot()small=2;cout”Called Constructor1.n”;Croot(int n)small=n;cout”Called Constructor2.n”;void showsmall()coutsmall=smallendl;class Cder1:public Croot public:Cder1(int m):Croot(m);class Cder2:public Croot public:int small;Cder2(int n=0)small=n;void main()Croot A;C

35、der1 bb(4);Cder2 cc;A.showsmall();bb.showsmall();cc.showsmall();四四 程序程序1.定义一个第 3 题的结构体类型的结构体数组 stud,输入学生三门课成绩,然后按总分成绩排序后输出学生成绩。#includestruct stud int no;char name20;int math;int eng;int c;int sum;st10;int n=-1;/表示数组元素当前下标void main()int x=1,i,j;stud t;cout请输入学生记录,按 0 结束x;if(x)n+;/读入学号stn.no=x;/读入姓名

36、cinstn.namestn.mathstn.engstn.c;/读入三门课成绩 stn.sum=stn.math+stn.eng+stn.c;/计算三门课总分else break;for(i=0;in;i+)/采用冒泡排序法对总分排序 for(j=0;jstj+1.sum)t=stj;stj=stj+1;stj+1=t;for(i=0;i=n;i+)/输出排序后学生信息 coutsti.no sti.name sti.math sti.c sti.eng sti.sumendl;2.声明一个哺乳动物 Mammal 类,再由此派生出狗 Dog 类,声明一个 Dog 类的对象,观察基类与派生类的

37、构造函数与析构函数的调用顺序。#includeclass Mammal public:Mammal()coutcall Mammalendl;Mammal()coutDelete base classendl;class Dog:public Mammal public:Dog()coutcall Dogn;Dog()coutDelete Dog classn;void main()Dog b;3.定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。#include#include#includeclass base

38、/定义一个基类protected:char name20;/姓名 char sex3;/性别 int age;/年龄 ;class teacher:public base /基类派生出教师类 int sno;/工号 char zc20;/职称 double wages;/工资 ;class student:public base /基类派生出学生类 int sno;/学号 char bj10;/班级 char zy10;/专业 double score;/入学成绩 ;4.建立一个基类 Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承 Buil

39、ding,并存储下面的内容:卧室和浴室的数量,另外,建立派生类 Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。程序代码:#include class Buildingpublic:Building(int f,int r,double ft)floors=f;rooms=r;footage=ft;void show()cout floors:floorsendl;cout rooms:roomsendl;cout total area:footageendl;protected:int floors;int

40、rooms;double footage;class Housing:public Buildingpublic:Housing(int f,int r,double ft,int bd,int bth):Building(f,r,ft)bedrooms=bd;bathrooms=bth;void show()coutn HOUSING:n;Building:show();cout bedrooms:bedroomsendl;cout bathrooms:bathroomsendl;private:int bedrooms;int bathrooms;class Office:public B

41、uildingpublic:Office(int f,int r,double ft,int ph,int ex):Building(f,r,ft)phones=ph;extinguishers=ex;void show()coutn HOUSING:n;Building:show();cout phones:phonesendl;cout extinguishers:extinguishersendl;private:int phones;int extinguishers;void main()Housing hob(5,7,140,2,2);Office oob(8,12,500,12,

42、2);hob.show();oob.show();5.声明一个 Shape 基类,在此基础上派生出 Rectangle(矩形)类和 Circle(圆)类,二者都有GetArea()函数计算对象的面积。分别求二种图形的面积。(矩形和宽为 10,20。圆的半径为 3.5)#include#define PI 3.1415926#includeclass base /抽象基类 B0 声明 public:/外部接口 virtual void display()=0;/纯虚函数成员;class circle:public base/公有派生 protected:double r,s,p;public:c

43、ircle(double x=0)r=x;void display()cout圆的面积r*r*PIendl;cout圆的周长PI*r*2endl;/虚成员函数;class incircle:public circle/公有派生 double a;public:incircle(double x=0):circle(x)void display()a=sqrt(r);cout内接正方形面积a*aendl;cout内接正方形周长4*aendl;/虚成员函数;class outcircle:public circle/公有派生 public:outcircle(double x=0):circle(

44、x)void display()cout外切正方形面积4*r*rendl;cout外切正方形周长8*rdisplay();void main()/主函数 base *p;/声明抽象基类指针circle b1(10);/声明派生类对象incircle d1(9);/声明派生类对象outcircle e1(10);p=&b1;fun(p);p=&d1;fun(p);p=&e1;fun(p);6.分别用成员函数和友元函数重载运算符,使对实型的运算符=、+、-、*、/适用于复数运算。用友元成员函数重载运算符,使对实型的运算符+、-适用于复数运算。程序:#includeclass complex/复数类

45、声明 public:complex(double r=0.0,double i=0.0)real=r;imag=i;/构造函数 friend complex operator+(complex c1,complex c2);/运算符+重载友元函数 friend complex operator-(complex c1,complex c2);/运算符-重载友元函数 void display();/显示复数的值 private:/私有数据成员 double real;double imag;void complex:display()/显示函数实现 cout(real,imag)endl;com

46、plex operator+(complex c1,complex c2)/运算符重载友元函数实现 return complex(c2.real+c1.real,c2.imag+c1.imag);complex operator-(complex c1,complex c2)/运算符重载友元函数实现 return complex(c1.real-c2.real,c1.imag-c2.imag);void main()/主函数 complex c1(5,4),c2(2,10),c3;coutc1=;c1.display();coutc2=;c2.display();c3=c1-c2;/使用重载运

47、算符 coutc3=c1-c2=;c3.display();c3=c1+c2;/使用重载运算符 coutc3=c1+c2=;c3.display();7.编写出程序,计算两点之间的距离。方法 1:可以定义点类(Point),再定义一个类(Distance)描述两点之间的距离,其数据成员为两个点类对象,两点之间距离的计算可设计由构造函数来实现。#include#includeclass Point public:Point(int a=0,int b=0)x=a;y=b;int xcord()return x;int ycord()return y;private:int x,y;class D

48、istance public:Distance(Point q1,Point q2);double getdist()return dist;private:Point p1,p2;double dist;Distance:Distance(Point q1,Point q2):p1(q1),p2(q2)double x=double(p1.xcord()-p2.xcord();double y=double(p1.ycord()-p2.ycord();dist=sqrt(x*x+y*y);void main()Point p(0,0),q(1,1);Distance dis(p,q);cou

49、t”The distance is:”dis.getdist()endl;方法 2:将两点之间距离函数声明为 Point 类的友元函数。#include#includeclass Pointpublic:Point(int a=0,int b=0)x=a;y=b;int xcord()return x;int ycord()return y;private:int x,y;friend double Distance(Point p1,Point p2);double Distance(Point p1,Point p2)double dx=double(p1.x-p2.x);double d

50、y=double(p1.y-p2.y);return sqrt(dx*dx+dy*dy);void main()Point q1(0,0),q2(1,1);cout”The distance is:”Distance(q1,q2)endl;8.定义盒子 Box 类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。#includeclass rectangle int len,wid;public:rectangle(int i=0,int j=0)len=i;wid=j;friend int area(rectangle temp)int s=temp.len*temp.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服