




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CPP复习题答案精品资料选择题1 . C+语言本身没有定义I/O操作,C+标准库iostream提供了基本的I/O类。I/O操作分别由两个类istream秋C )提供,由它们派生出一 个类iostream,提供双向I/O操作。A. fstreamB iostreamC ostreamD cout2. 引入内联函数的主要目的是(B )。A. 缩短程序代码,少占用内存空间B. 既可以保证程序的可读性,又能提高程序的运行效率C. 占用内存空间少,执行速度快D. 使程序的结构比较清晰3. 重载函数是(A )A. 以函数参数来区分,而不用函数的返回值来区分不同的函数B. 以函数的返回值来区分,而不用函数
2、参数来区分不同的函数C. 参数表完全相同而返回值类型不同的两个或多个同名函数D. 参数表和返回值类型都必须是不同的两个或多个同名函数4. 在C+中,数据封装要解决的问题是(D )。A. 数据的规范化B.便于数据转换C.避免数据丢失D.防止不同模块之间数据的非法访问5. 下列特性中,(B )不是面向对象的程序设计的特征。A.继承B.内联函数C.多态性D.封装6类B的对象必定是类A的对象,但是类A的对象却不属于类B,则类 B和类A之间的关系是(C )。A.组合关系B.间接关系C.继承关系D.直接关系7.下面对于友元函数描述正确的是(C )。仅供学习与交流.如冇侵权请联系网站删除谢谢2精品资料A.
3、友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封装性D.友元函数不能访问类的私有成员 &以下关于析构函数的描述中(C )是错误的。A. 析构函数声明和定义中没有形参B.析构函数可以定义为内联函 数。C.析构函数可以重载D.析构函数可以定义为虚函数。9. 下面叙述错误的是(A )oA. 基类的protected成员在派生类中仍然是protected的B. 基类的protected成员在public派生类中仍然是protected的。C. 基类的protected成员在private派生类中是private的。D. 基类的protected成员不能被派生类的对象访
4、问。10. 如果一个类至少有一个纯虚函数,那么就称该类为(A )。A.抽象类 B.虚基类C.派生类D.以上都不对11当公有继承时,基类的(D)在派生类中成为保护成员,不能通过派 生类的对象来直接访问该成员。A. 任何成员B.公有成员和保护成员C.保护成员和私有成员D.保护成员12. 当私有继承时,基类的(A )在派生类中成为私有成员,不能通过派 生类的对象来直接访问该成员。A. 任何成员B.公有成员和保护成员C.保护成员和私有成员 D.私有成员仅供学习与交流,如有侵权请联系网站删除谢谢3精品资料13. 派生类的对象对它的基类成员中(A )是可以采用对象或者对象指针- 的方式访问的。A. 公有继
5、承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员14. 关于纯虚函数和抽象类的描述中,错误的是(C )。A. 纯虚函数是一种特殊的虚函数,它没有具体的实现。B. 抽象类是指具有纯虚函数的类。C. 个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类。D. 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。15. 下列说法错误的是(C )。A. 若语言只支持类而不支持多态,则不能称为面向对象的。B. 在运行时根据其类型确定调用哪个函数的能力叫多态性。C. 静态多态性也是在运行时根据其类型确定调用哪个函数。D. C+中的静态多态性是通过函数重载进行实现的。16
6、. ( D )不是构造函数的特征A.构造函数的函数名与类名相同。B.构造函数可以重载。C.构造函数可以设置缺省参数。D.构造函数必须指定类型说明。17 .下列标识符中,A不是C+的关键字;A. cinC. this18下列标识符中,B privateA 不是C+的关键字;D operatorA.coutB. virtualC. thisD. template18下列标识符中,A不是C+的关键字;A.coutC. this19下列标识符中,B. publicA 不是C+的关键字;D sizeofA.coutB. deleteC. thisD. sizeof仅供学习与交流.如有侵权请联系网站删除谢
7、谢4精品资料20 .下列标识符中,A 不是C+的关键字;A. coutB. new C. thisD void21 引用是一个变量的别名,下列关于的引用的描述,正确的是(A )。A .引用的值与被引用变量的值相等.内存地址相同;B .引用的值与被引用变量的值相等,内存地址不相同;C .引用的值与被引用变量的值不等.内存地址相同;D .引用的值与被引用变量的值不等,内存地址不同;22 公有继承时,子类的访问接口由(D)组成:A. 父类的非私有成员和子类的非私有成员;B. 父类的公有成员和子类的非私有成员;C. 父类的非私有成员和子类的公有成员;D. 父类的公有成员和子类的公有成员;23 公有继承
8、时,子类对象只可访问父类中的(B)和子类自己的公有 成员。A .非私有成员;B .公有成员;C .私有成员;D .保护成员;24 公有继承时,子类成员函数不可以直接访问父类中(C)。A .非私有成员;B .公有成员;C .私有成员;D .保护成员;25 公有继承时,子类对象和子类成员函数必须通过父类(A)的成员 函数访问父类私有成员。仅供学习与交流,如有侵权请联系网站删除谢谢5精品资料A .非私有;B .非公有;C .静态;D .私有;26 下列关于虚函数的描述,正确的是(C)。A. 静态成员函数可以是虚函数;B. 构造函数可以是虚函数;C. 析构函数可以是虚函数;D. 内联函数可以是虚函数;
9、27 .下列关于虚函数的描述,正确的是(B )。A. 静态成员函数可以是虚函数;B. 构造函数不可以是虚函数;C. 析构函数不可以是虚函数;D. 内联函数可以是虚函数;28 下列关于虚函数的描述,错误的是(B)。A. 静态成员函数不可以是虚函数;B. 构造函数可以是虚函数;C. 析构函数可以是虚函数;D. 内联函数不可以是虚函数;29 下列关于虚函数的描述,错误的是(C)。A. 静态成员函数不可以是虚函数;B. 构造函数不可以是虚函数; 仅供学习与交流,如有侵权请联系网站删除谢谢6精品资料C. 析构函数不可以是虚函数;D. 内联函数不可以是虚函数;注:静态成员函数不能是虚函数;内联函数不能是虚
10、函数;构造函数不能是虚函数;析构函数可以是虚函数,且通常声明 为虚函数。填空题1. 在C+程序中.使用基本输入输出流需要包含的头文件是iostream.h 2. 具有相同函数名但具有不同参数表的函数称为重载函数O3. 在一个函数的定义或声明前加上关密字inline时,该函数就声明为 内联函数。4. 当一个类对象的成员函数被调用时,该成员函数的this指针指向调用它的对象。5. 在撤销类的对象时,C+程序将自动调用该对象的析构 函数。6. 对类中的成员函数和属性的访问是通过public 、 private和protected& 3个关键字来控制的。仅供学习与交流,如有侵权请联系网站删除谢谢7精品
11、资料7. 当用public继承从基类派生一个类时,基类的public成员成为派生 类的_public_j员,protected成员成为派生类的protected _ 成员。8. 有如下定义语句:MyClass p10, *q;则系统自动调用该类构造函数次。当类对象数组P离开它的作用域时,系统自动调用该类析构函数 卫 次。9. 在类定义中,将込置于虚函数的函数原型的末尾可以将该函数声明 为纯虚函数。10. 带有纯虚函数的类称为抽象类.它只能作为其他派生类的基类来使用。11假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数形式为MyClass:MyClass()12
12、. 有如下定义语句:MyClass *p;,则执行p=new MyClass;语句时,将自动调用该类的 构造函数 执行delete p;语句时,将自动调用该类的 析构函数。13. 有如下对象数组定义语句:MyClass *p10;当对象指针数组p离开它的 作用域时,系统自动调用该类析构函数次。指针不调用,申请 内存时才调用。仅供学习与交流,如有侵权请联系网站删除谢谢8精品资料14在结构定义中,数据和成员函数默认权限是公有的。在类定义中数据 和成员函数默认权限果私有的C15. C+是混合性程序设计语言,既支持面向过程,又支持面向 对 象 n16 .面向对象程序设计的三大特点:封装、继承、多态。1
13、7 .重载函数调用时,编译器按返回类型、参数类型、参数个数、参数 顺序进行匹配,重载函数至少在参数个数、参数类型、或参数顺 序上有所不同。18 .函数模板比函数重载的表达更简洁,但只有 参数个数相同、函 数体相同,仅类型不同的函数才能定义模板。19 . void型指针是通用型指针,僂匸类型的指针值都可以赋给void类 型指针,但使用时必须进行显式转换,否则出错。20 .在程序中使用运算符new申请内存,应该相应地使用运算符delete 来释放申请的内存。22 . JAVA是纯面向对象语言,C+是混合性程序设计语言,混合语言的 特点是既支持传统的程序设计方法,又支持面向对象程序设计方法。23 .
14、类是一数据和代码的复合体。数据(成员)和(成员)函数 也OK !24 .类可以有多个构造函数,有一个析构函数。仅供学习与交流,如有侵权请联系网站删除谢谢9精品资料25 .若类中一个构造函数都没有,则C卄自动提供一个无参数的 默认 构造函数,负责创建对象。26 .类中const数据成员 和引用类型的数据成员必须在该类的对象建 立的同时进行初始化,这种初始化只能用成员初始化列表进行。27 .在类中使用static声明的成员称为静态成员。28 静态成员函数在类中只有语法上的作用,它不是对象的成员,没有 虹指针,必须将对象作为参数传入,才能在静态成员函数访问该对象 的成员。29 .友元函数是对设计类时
15、未定义完整操作集的补充,是类外的函数, 它不是对象的成员函数,没有this指针,必须将对象作为参数传入。30. C程序是由一组 函数 组成的,C+面向对象程序是由一组蛊组 成的。31 面向对象的程序设计主要是类的设计,在编译时,一个面向对象的 系统由类组成.在运行时,系统由对象组成32 .单一继承形成一个倒挂的树;多重继承形成一个有向无环图33 .当类中包含虚拟函数时,C+编译器为类加上一个虚函数指针, 该指针指向虚拟函数表。34 .当类中包含虚拟函数时,C+编译器为类加上一个虚函数指针,该 指针指向虚拟函数表。仅供学习与交流,如有侵权请联系网站删除谢谢10精品资料35 .包含康拟函数的类通过
16、vptr指针 和 虚拟函数表 可以在程序运 行时依据指针实际指向的对象调用对应的虚拟函数,从而实现多态,达 到动态绑定的目的。36 .派生类的对象可以赋给基类的对象;由于基类对象不具有派生类对 象所具有的成员,因此基类的对象不可以赋值给派生类对象。37 .运算符重载的实质就是一函数重载n通过运算符重载可以使应用于 基本数据类型的运算符作用于用户自定义数据类型。问答题:1面向过程和面向对象在程序组织方式上的差别?面向过程的核心是功能的分解,最终的程序由过程构成,将数据结构 和过程作为两个实体对待,着重点在过程。缺点就是一旦数据结构需要 变更.需修改与之有关的所有模块。面向对象中数据构成软件分解的
17、基础,而不是功能,数据与定义在在它 上面的用户需要构成整体,数据本身不能被外部程序和过程直接存取 程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并 规定它们之间传递消息的规律n程序中的一切操作都是通过向对象发送 消息来实现,对象接收到消息后,启动有关方法完成操作。类由继承关 系产生相互的联系。2.C+中采用类的概念将数据以及处理数据的函数封装在一起的好处?仅供学习与交流,如有侵权请联系网站删除谢谢11精品资料C+采用类(class)的概念将数据以及处理数据的函数封装在一起,将一 部分行为作为外部访问的接口与外部发生联系,而将数据和其他行为进 行有效隐藏,就可以达到对数据访问权限的
18、合理控制。通过这种有效隐 藏和合理控制,就可以增强数据的安全性,减轻开发软件系统的难度。 3面向对象程序设计具有哪三大特点及其目的?封装,继承,多态封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和 方法只让可信的类或对象操作,对不可信的进行信息隐藏,继承:可以使用类的现有类的所有功能,并在无需编写原来类的情况下 对这些功能进行扩展n多态:允许将子类类型的指针赋值给父类类型的指针。4. C+程序设计语言中this指针的作用?个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。(his作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候, 编
19、译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你 没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数 的隐含形参,对各成员的访问均通过this进行。5. C+程序设计语言中虚函数指针和虚函数表的作用?C+编译器为每个“内含虚拟函数的类建立一个虚拟函数表(vtable),表 中每一个指针元素指向一个虚拟函数的地址,编译器为类加上一个成员 变量vpy vptr是一个指向虚拟函数表的指针。每一个派生类的对象, 都有一个vptr,对象调用虚拟函数就是通过vptr找到虚拟函数表,再找 仅供学习与交流,如有侵权请联系网站删除谢谢12 精品资料 到虚拟函数
20、的真正地址。虚拟函数表的内容是依据类中的虚拟函数声明 次序一一填入函数指针。派生类继承基类的虚拟函数表.派生类中改写 虚拟函数.虚拟函数表中元素所指的函数地址不再是基类的函数地址, 而是派生类的函数地址。包含虚拟函数的类通过vptr指针和虚拟函数表可以在程序运行时依据指 针实际指向的对象调用对应的虚拟函数.从而实现多态(Polymorphism)。 为了达到动态绑定的目的,虚拟函数是了解多态(Polymorphism)以及动态 绑定的关键.同时也是了解如何使用MFC的关键。6. C+程序设计语言是如何实现多态的?共用同一个函数名,同时有不同数量或者不同类型的参数。系统会根据参数自动 调用对应的
21、函数,这样就实现了多态7为什么析构函数通常声明为虚函数,而构造函数不能是虚函数?因为构造函数不被继承,而虚函数是要在派生类中重定义的。定义虚析构函数后,由于多态,当使用基类指针指向派生类对象时,会调用派生类的虚构函数,然 后派生类的析构函数自动调用基本析构函数。不是虚的话,直接调用基类的析构函 数了。如果派生类中有用new分配的内存,就无法释放。&为什么子类对象可以给父类对象赋值,而父类对象不能给子类对象赋 值?父类定义为抽象接口类,子类继承父类然后重新实现接口。C+中子类的对象赋 值给父类的对象。如果把子类的对象赋值给父类的对象,只是把子类中的父类子对 象赋值给父类的对象,父类的对象无法拥有
22、子类特有的成员。9类中的静态成员与类的数据成员有什么区别?静态数据成员是拥有全局寿命的成员,即在文件的开始到结束期间,内存始终都 为其分配存储单元,它可以是局部变量,也可以使全局变量。非静态数据成员,其 寿命局限于其块作用域,从“后定义开始到遇到“”代表其结束,内存自动释放空 间。仅供学习与交流,如有侵权请联系网站删除谢谢13精品资料10.深拷贝和浅拷贝的区别?当出现类的等号赋值时,会调用拷贝函数在未定义显示拷贝构造函数的情况下, 系统会调用默认的拷贝函数即浅拷贝,它能够完成成员的一一复制。当数据成 员中没有指针时,浅拷贝是可行的。但当数据成员中有指针时,如果采用简单的浅 拷贝,则两类中的两个
23、指针将指向同一个地址,当对象快结束时,会调用两次析构 函数,而导致指针悬挂现象。所以,这时,必须采用深拷贝。深拷贝与浅拷贝的区 别就在于深拷贝会在堆内存中另外申请空间来储存数据,从而也就解决了指针悬挂 的问题。简而言之,当数据成员中有指针时,必须要用深拷贝。11指针类型的作用?子类指针与父类指针强制转换时要注意什么?因为子类实例在内存排列上先是把父类的所有内容排在前面因此父类的指针指过 来时父类的各成员的偏移地址都是不变的.12何为抽象类?抽象类在程序中的作用?抽象类指的是含有纯虚函数的类,该类不能建立对象,只能声明指针和引用,用于基础类的接口声明和运行时的多态 另外,如果抽象类的某个派生类在
24、向继承体系的根回溯过程中,并不是所有的纯虚 函数都实现了,该类也是抽象类,同样不能建立对象。抽象类的主要作用是将有关 的组织在一个继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从 这个根派生出来的。13运算符重载的本质是什么?有哪两种实现方式?本质就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据 类型。方式:1.定义为它将要操作的类的成员函数2.定义为类的友元函数。14.内联函数的优缺点?通常在什么情况下使用?优点是提高运行时间效率,缺点是增加了空间开销内联函数在C+类中,应用最广的,用来定义存取函数。我们定义的类中一般会 把数据成员定义成私有的或者保护的,这样,
25、外界就不能直接读写我们类成员的数 据了。对于私有或者保护成员的读写就必须使用成员接口函数来进行。如果我们把 这些读写成员函数定义成内联函数的话,将会获得比较好的效率。读程题仅供学习与交流,如有侵权请联系网站删除谢谢14精品资料1 在注释符后面注明变量类型(全局变量、局部变量、静态变量)及输出纟吉果。#include iostream.hMint lengths 10;/变量类型:全局变量int countVolumn(int height);int countVolumn(int lengthjnt widthjnt height);void main() coutHlen
26、gth = vvlengthvvendl;/输出结果:len0h=lO int length,width,height,vokimn; 变量类型:局部变量 length= 1;width二 1;height= 1;volumn=:length*width*height;cout体积二vvvoliimnvvendl; 输岀结果:体积=10 volumn=countVokimn(widthJieight);cout体积二vwolumnvvendl; 输岀结果:体积二 10 volumn=length*width*height;coutn体积二 Hvoluninendl; 输岀结果:体积=1 vol
27、umn=countVolumn(length,width,height);cout体积二vvvoliimnvvendl; 输出结果:体积二2 vokimn=countVokimn(Iength,widthJieight);cout体积二vwoliimnvvendl; 输岀结果:体积二3int countVolumn(int widthjnt height)return length*width*height;int countVolumn(int lengthjnt widthjnt height)static int temp= 1; 变量类型:静态变量temp=temp+Iength;re
28、turn temp*width*height;仅供学习与交流.如有侵权请联系网站删除谢谢15精品资料2下列程序给出了基类CFurniture及其派生类CDesk的描述,分析成员 函数Showinfo ()和main()中带下划线的代码行正确性,并依据注释行 的提示给出结果。#include Miostream.hMclass CFurnitureprivate:double Weight;protected:int Material;public:int Color;public:CFurniture (int cjnt m.double w)Color=c; Material=m;Weigh
29、t=w; CFurniture ()double GetWeight()return Weight;)int GetMaterial() return Material;int GetColor() return Color;;class CDesk:public CFurnitureprivate:int LengthWidth;public:int Height;public:CDesk (int H,int LJnt W,int c, int m, double w): CFurniture (c,m,w) Height=H; Length=L; Width=W;) CDesk ()vo
30、id Showlnfo();void CDesk:ShowInfo()/注:可访问的,不需要修改。判断该成员函数中能否访问下列数据,如不可访问,改为可访问coutLenthendl; 判断:可访问修改:coutWidthendl; 判断:可访问修改:coutHeiihtendl; 判断:可访问修改:coutColorendl; 判断:可访问修改:coutMaterialendl; /判断:可访问修改:coutWeihtendl; 判断:不可访冋修改:coutvvGetWeight()vvendl:仅供学习与交流.如有侵权请联系网站删除谢谢16精品资料void main()/判断带下划线代码行的
31、正确性,如正确,写岀结果;如不正确,写岀 原因CDesk mDesk( 1,2,34500);coutvv mDesk.Lengthvvendl;/判断: 错 原因或结果 子类对象 不可直接访问类的私有成员coutvv mDesk.Widthvvendl;/判断:错原因或结果 子类对象不可直接访问类的私有成员coutvv mDesk.Heightvvendl;/判断:正确 原因或纟吉果 1coutvv mDeskColorvVendl; 判断 : 正确 原因或纟吉果 4coutvv mDeskMaterialvvendl;/判断:错原因或结果子类对象不可直接访问父类的保护成员coutvv mD
32、esk. Weight vvendl;/判断: 错 原因或纟吉果 子类对象 不可直接访问父类的保护成员3下列程序是关于虚拟函数与多态的。读程序,写出程序运行结果。#include Miostream.hM class CShape public:int color;public:virtual void display() coutHShape nH;);class CRect:public CShape public:double length,width;public:virtual void display() coutHRectangIe n; ); class CSquare:pub
33、lic CRect public:double edgeLength;public:aShape.color=l; aRect.coloi-2; aSquare.coloi-3;virtual void display() coutHSquare nn; ); void main()CShape aShape;CRect aRect;CSquare aSquare;CShape *pShape = &aShape汕&aRect,&aSquare; 仅供学习与交流.如有侵权请联系网站删除谢谢17精品资料for(int i=0;iv3;i+)pS hape i-display(); coutpSh
34、apei-colorendl;)(CRect *)pShapeO)-display(); cout (CShape *)pShapei)-colorendl;运行结果为:Shape1Rectangle2Square3Shape14依据下列类的继承的描述,参照示意图、回答main函数中的问题。class CBasepublic: int x;class BaseA:public CBasepublic:int a;;class BaseB :public CBasepublic: int b;class C: public BaseA. public BaseBpublic:char c;int
35、 addA() return BaseA:x + BaseB:x;);void main()判断带下划线代码行的正确性,如正确,写岀结果;如不正确,写出原因C mObj;仅供学习与交流.如有侵权请联系网站删除谢谢18精品资料mObj.x; 判断:错原因或结果:产生二义性mObj.CBase:x;/判断:错 原因或结果:产生二义性mObj. B ase A: x=5;mObj.BaseB:x=10;coutmObj.BaseA:xendl;/判断:正确原因或结果:5coutvvmObjBaseB:xvvcndl;判断 : 正确 原因或纟吉果 :10)21 分析下列程序写出其运行结果。#inclu
36、de #define N 100class CStack private: int stackN; int top;public:CStack() top=0; coutMHello ; CStack() coutvv”Bye”; void push(int i);int pop();void class CStack:push(int i)if (top=N)coutnOveiflowM; return;)else) top+;stacktop=i;)int class CStack:pop()仅供学习与交流.如有侵权请联系网站删除谢谢19精品资料int temp;if (top=0)cou
37、tnUnderflowH; return 0;else)temp=stacktop;top;return temp;void main()CStack *pti*=new CStack;ptr-push (100);ptr-push(60);cout ptr-pop( )Hcout ptr-pop( )H H;cout ,OK!,endl;delete ptr;答:Hello 60 100 OK IBye22.分析下列程序,写出其运行结果。#include class vehicle)int wheels;float weight;public:void message(void) cout
38、Vehicle messagenn; ;class car : public vehicle)int passenger_load;pub丘c:void message(void) cout uCar messagen;仅供学习与交流.如冇侵权请联系网站删除谢谢20精品资料class tiuck : public vehicle)int passenger_load:float pay load;public:int passengers(void) return passengerjoad;class boat : public vehicle)int passengerjoad;publi
39、c:int passengers(void) return passengerjoad; void message(void) cout Boat messagen;int main()vehicle *unicycle;unicycle = new vehicle; unicycle message();delete unicycle; unicycle = new car; unicycle -message();delete unicycle ;unicycle = new tnjck; unicycle -message(); delete unicycle ; unicycle =
40、new boat; unicycle -message();delete unicycle ; return 0;答:Vehicle messageVehicle messageVehicle messageVehicle message23.如果将上题第22小题中vehicle的成员函数message的定义改为:virtual void message(void) cout Vehicle message nn;写出修改后的程序的运行结果。答:Vehicle messageCar messageVehicle message Boat message21分析下列程序,写出其运行结果。#inc
41、lude class MyClasspublic:MyClass(int a)x=a;仅供学习与交流.如冇侵权请联系网站删除谢谢21精品资料void Funl()x+;void Fun2()x+=2;Jvoid Fun3()x+=3;Jvoid Print()coutnx=Hxend 1;private:;void main()MyClass my(8);void (MyClass:*pf)();my.Print();pf=MyClass:Funl; (my.*pf)(); my.Print();pf=MyClass:Fun2; (my.*pf)(); my.Print();pf=MyClas
42、s:Fun3; (my.*pf)(); my.Print();答:x=8x=9x=llx=1427.下列程序定义了一实部为mal,虚部为imag的复数类complex,并在类中重载了复数的+、-操作。请将下列程序补充完整。Class Complex)public:Complex(double r=0.0,double i=0.O)real=r;imag=i ; Complex operator +(Complex);friend Complex operator -(Complex,Complex);private:double reaLimag;Complex Complex: operat
43、or +(Complex c)thisreal+二c.reaLthis-imag+二 c.irrmg;return *this;Complex operator -(Complex cl,Complex c2)仅供学习与交流.如冇侵权请联系网站删除谢谢22精品资料return Complex( cl.real+c2waLclimag+c2imag26.下面程序是一个含有比较运算符和赋值运算符重载的程序,请填空完 成程序实现该程序。#include class pointprivate:float x,y;public:point(float xx=O,float yy=0) x=xx,y=yy
44、 ;point(point&);point();bool operatoi-=(point);bool operator!=(point);point& opemto+=(point);float getx()return x;float gety() return y;point:point(point&x二p.getx().y二p.gety() ;bool point:operator=(point p)if(x=pgetx()&(y=p.gety()return 1;elsereturn 0;)bool point:operator!=(point p)if(x!二.etx()&(y!二
45、.ety()return 1;elseReturn 0;point& point: :operator+=(point p)this-x+=p.getx();this-y+=p.gety();return 水thisvoid main()仅供学习与交流.如冇侵权请联系网站删除谢谢23精品资料point pl(l,2),p2(3,4);p3(5,6); coutvvp 1 =p2? v(p 1 =p2)endl; cout?pl !=p2? ,5(pl !=p2)endl;p3+二pl;cout,p3+=p 1 ,p3: vp3.getx()p3.gety()endl;) 仅供学习与交流.如冇侵
46、权请联系网站删除谢谢24精品资料四.程序设计题1运算符重载:依据下列关于矩阵类的描述,写出+、-等操作符重载的 实现。不考#include niostream.hM#include stdlib.hclass CMvArraypublic:int raw,col;long *data;public:CMyArray(int m,int n);CMyArray() raw=0; col=0: data=NULL;CMyAiray()CMyArray operator + (CMyArray& B);写出矩阵加法运算符重载的 实现CMyArray operator-(CMyArray& B); /
47、写出矩阵减法运算符重载的 实现;CMyArray:CMyArray(int m,int n)raw=m; col=n;data=new longraw*col;for(int i=0;ivm;i+)for(int j=O;jn;j+)*(data+i*col+j)=rand();力写出矩阵加法运算符重载的实现CMyArray CMyArray: :operator + (CMyArray& b)力写出矩阵减法运算符重载的实现CMyArray CMyArray:operator-(CMyArray& b) 2 依据下列关于复数类的描述,写出-、/、=. !二等操作符重载的实现。class CComplexprivate:仅供学习与交流.如有侵权请联系网站删除谢谢25精品资料int real
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园体育活动组织计划
- 房产中介能源管理策略-全面剖析
- 交通大数据分析与优化-全面剖析
- 个性化医疗设备定制-全面剖析
- 城市旅游中的市场营销策略-全面剖析
- 智能供应链管理-第5篇-全面剖析
- 情感表达在情感计算中的重要性-全面剖析
- 无线通信标准化进程-全面剖析
- 智能摊铺调度算法研究-全面剖析
- 分布式系统设计与实现-全面剖析
- 2025年钟山职业技术学院单招职业适应性考试题库必考题
- 2025年浙江名校协作体高三语文2月联考作文题目解析及范文:“向往”的“苦处”与“乐处”
- 新高考背景下混合式教学模式在物理教学中的实践与研究
- 财务岗位招聘笔试题与参考答案(某大型国企)2025年
- 2025风电机组无人机巡检技术方案
- 2024-2025学年广东省深圳市南山区监测数学三年级第一学期期末学业水平测试试题含解析
- GB/T 44869-2024玩具及儿童用品绿色包装技术规范
- 2025年中国政法大学招考聘用管理单位笔试遴选500模拟题附带答案详解
- 装配式建筑深化设计-1.1.1 装配式建筑深化设计概65课件讲解
- 便秘培训课件
- 放射科报告质量问题整改措施
评论
0/150
提交评论