_数组指针与字符串.pptVIP

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
_数组指针与字符串

例: 动态对象或动态变量的“别名”问题 #include iostream.h void main() { int *pa=new int[1]; int *pb=new int[1]; *pa=28; *pb=64; cout(1)a=*pa,b=*pbendl; pa=pb; cout(2)a=*pa,b=*pbendl; *pa=206; cout(3)a=*pa,b=*pbendl; delete []pa; //delete []pb; //编译连接均无错,但运行错 } 动态创建对象例6_16 #include iostream using namespace std; class Point{ public: Point( ){X=Y=0; coutDefault Constructor called.endl;} Point(int xx,int yy) {X=xx;Y=yy; coutConstructor called.endl;}; ~Point( ){ coutDestructor called.endl; } void Move(int x,int y){X=x;Y=y; } private: int X,Y; }; 动态创建对象例6_16(续1) void main(){ coutStep One:endl; Point *ptr1=new Point;//动态创建对象,无初值,调用默认构造函数 delete ptr1;//删除对象,自动调用析构函数 coutStep Two:endl; ptr1=new Point(1,2);//动态创建对象并给初值,调用有形参构造函数 delete ptr1;//删除对象,自动调用析构函数 coutStep Three:endl; ptr1=new Point[2]; //动态创建对象数组,调默认构造函数,无delete不释放 ptr1[0].Move(5,10); } 动态创建对象例6_16(续2) 结果: Step One: Default Constructor Destructor called. Step Two: Constructor called. Destructor called. Step Three: Default Constructor called. Default Constructor called. //用new创建的动态对象,只能用delete释放.仅释放2个 //可以用动态数组类解决动态数组的自动建立和删除 动态数组类 将数组的建立和删除过程封装起来,形成一个动态数组类. 例6_18:由动态数组类完成Point类动态数组的创建和释放. #include iostream #include cassert //内装宏assert,可判断表达式值为真或假 using namespace std; class Point {public: Point(int x=0,int y=0) {xx=x;yy=y;} ~Point() { cout“析构Point对象endl;} void Move(int x,int y) {xx=x;yy=y;} void print(){coutx=xx yy=yyendl;} private: int xx,yy; }; class ArrayOfPoint {public: ArrayOfPoint(int n) {this-n=n; points=new Point[n];} ~ArrayOfPoint() {cout“释放动态空间”endl; n=0; delete []points;} Point Element(int m) { assert(m=0mn); //下标越界程序中止,仅调试模式有效 return points[m]; } private: Point *points; int n;}; void main() { int number(4); ArrayOfPoint ps(number); ps.Element(3).print(); ps.Element(0).Move(5,10); p

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档