第五周 阅读程序(5)

来源:互联网 发布:apache启动 编辑:程序博客网 时间:2024/05/18 23:52

问题描述:

本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。

(5) 阅读程序,写出程序的运行结果并理解

  1. #include<iostream>  
  2. using namespace std;  
  3. class myClass  
  4. {  
  5. public:  
  6.     myClass(){ number++;}  
  7.     ~myClass(){ number--;}  
  8.     static int number;  
  9. };  
  10.    
  11. int myClass::number=0;  
  12.    
  13. int main()  
  14. {  
  15.     myClass *ptr;  
  16.     myClass A,B;  
  17.     myClass *ptr_Arr=new myClass[3];  
  18.     ptr=ptr_Arr;  
  19.     myClass C;  
  20.     cout<<myClass::number<<endl;  
  21.     delete []ptr;  
  22.     return 0;  
  23. }
理想运行结果:3

实际运行结果:

错误分析:漏了下面那一句定义数组成员为3的数组调用3次构造函数,所以number是6而不是3.

  1. myClass *ptr_Arr=new myClass[3]; 

0 0