第六章问题对象的指针、this指针、const、new和delete.doc

上传人:11****ws 文档编号:3129147 上传时间:2019-05-22 格式:DOC 页数:8 大小:61KB
下载 相关 举报
第六章问题对象的指针、this指针、const、new和delete.doc_第1页
第1页 / 共8页
第六章问题对象的指针、this指针、const、new和delete.doc_第2页
第2页 / 共8页
第六章问题对象的指针、this指针、const、new和delete.doc_第3页
第3页 / 共8页
第六章问题对象的指针、this指针、const、new和delete.doc_第4页
第4页 / 共8页
第六章问题对象的指针、this指针、const、new和delete.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、对象的指针、this 指针、const、new 和 delete63 练习题1指向对象的指针与指向对象成员的指针有何不同?2指向成员函数的指针和指向一般函数的指针有何区别?3对象指针作函数参数与对象作函数参数有何不同?4对象引用作函数参数与对象指针作函数参数有何区别?5什么是 this 指针?它有何作用?6什么是对象数组?它如何定义?如何赋值?7。指向对象数组的指针如何定义?如何赋值?8什么是指针数组?什么是对象指针数组?它们是如何定义的?它们又将如何被赋值?9。带参数的 main()的形式如何?main()有哪些参数?各表示什么意思?10如何定义一个常量?11使用 const 修饰符定义常指

2、针时,const 位置有何影响?举例说明,如何定义一个常量指针?12如何定义常引用?13,什么是类型适应?举例说明在什么情况下会出现类型适应。14常成员函数有何特点?在什么情况下需要定义常成员函数?l 5常数据成员的初始化如何实现?l 6如何对子对象进行初始化?17运算符 new 和 delete 的功能是什么?它们可以用来创建动态对象和删除动态对象吗?18使用 new 和 delete 创建和删除动态数组的格式如何?19在例 617 中,程序执行下列语句20C 十十中类型的自动隐式转换有哪些规则?21构造函数都具有类型转换函数的功能吗?22什么是转换函数?定义时应注意哪些问题?6.4一、选择

3、填空1已知一个类 A。(C)是指向类 A 成员函数的指针。假设类有 3 个公有成员:void f1(int),void f2(int)和 int a。AA*p;B. int A:*pcCA1.*p5;D*A1p5;5已知类 A 中一个成员函数说明如下所示。void Set(A其中,AA:A() ab=O;cout”Default constructor calledn” ; A :A(int i,int j)a=i;bj;cout”Constructor:a”a” ,b”bendl;A :A() cout”Destructor calleda”a” ,b”bendl;void main() c

4、out”Starting1:n” ;A a3;for(int i=0;i3;i 十十)a1Set(2*i 十 1,(i 十 1)* 2);cout”Endingln” ;cout”Starting2n” ;A b3A(5,6),A(7,8),A(9,l0);cout”Ending2n” ;分析:程序中出现了构造函数重载和对象数组等语法现象.并给了对象数组赋值和赋初值的方法。2#include Class Bint x,y;public:B();B(int i);B(int i,int j);B();void Print();B:B() x=y=0;CoutClass Apublic;A(int

5、 i=o)mi;cout”Constructor called ”mendl;void Set(int i) mi;void Print()constcoutmendl; A()cout”Destructor called.”mendl;private:int m;void main()const N5;A my;myN;myPrint();分析:该程序中出现了常成员函数 Frint()的语法现象。它的出现是为了满足主函数myPrint()的需要,这里的 my 实际上是一个常对象,因为它的值为 N 的值,N 是一个整型量。语句 myN;是将一个常整型量通过调用一个参数的构造函数转换为一个对值后

6、,再赋值给对象 my 的。因此,这里先调用构造函数,后调用析构函数。4#includeiostreamhClass Apublic:A(int iO)mi;cout”Constructor called ”mendI;void Set(int i)mi;void Print( ) const coutmendl;A()cout”Destructor called ”mendl;private:int m;void fun(const A complex:complex( )Set(0,0,00);cout”Constructor:real=“real“,imag=“imag“endl; com

7、plex:complex(double real,double imag)Set(real,imag);cout”Constructor: real”real“,imag”imagendl;void complex:Print( )if(imagO)coutrealimagiendl;elsecoutreal十imagiendl;void complex:Set(double r,double i)real:r:imag:i;void rnain( )complex c1;complex c2(68);complex c3(56,79);c1Print( );c2Print( );c3Prin

8、t( );c1complex(12,34);c2:5:c3;complex();c1Print();c2Print();c3Print( );分析:该程序中类 complex 是用来描述复数的一个类,它有实部和虚部两个数据成员。在该程序主函数中,首先创建 3 个对象 cl,c2 和 c3,分别调用默认构造函数,一个数的构造函数和两个参数的构造函数创建这 3 个对象。然后,分别调用成员函数 Print(输出显示这 3 个复数。主函数中,接着又改变前边定义的 3 个对象的值,通过赋值表达进行的。这时分别调用两个参数构造函数、一个参数构造函数和默认构造函数完成改值的操作。请读者使用类 comPlex

9、 中成员函数 Set()改变某些对象的值,并上机调试。四、分析下列程序,并回答提出的问题 P159#includeiostreamh#includestringhclass String public:String()Length:O;Buffer0;Stfing(const char *str);Void Setc(int index,char newcha);char Getc(int index)const;int Getlength( )const return Length;void Print( )constif(BufferO)cout“emptyn“;elsecoutBufferendl;void APPend(const char *Tail)String()delele Buffer;private:int Length;char * Buffer;String :String(const char * str) Length=strlen(str);Buffer;new char Length+1strcpy(Buffer,str);void String:Setc(int index,char newchar) 缺 160 161

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。