第五周 阅读程序(5)
2015-04-03 20:02
176 查看
问题描述:
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(5) 阅读程序,写出程序的运行结果并理解
#include<iostream>
using namespace std;
class myClass
{
public:
myClass(){ number++;}
~myClass(){ number--;}
static int number;
};
int myClass::number=0;
int main()
{
myClass *ptr;
myClass A,B;
myClass *ptr_Arr=new myClass[3];
ptr=ptr_Arr;
myClass C;
cout<<myClass::number<<endl;
delete []ptr;
return 0;
}
理想运行结果:3
实际运行结果:
错误分析:漏了下面那一句定义数组成员为3的数组调用3次构造函数,所以number是6而不是3.
myClass *ptr_Arr=new myClass[3];
本周再补充三个和指针有关的阅读程序,进一步掌握指针工作的原理。
友情提醒:画出内存,让程序的分析,在理性、有序中完成。如果有时间的变化,博客中加个自己画的图。
可以在上机时通过单步执行,进一步和你在人脑中运行程序的过程进行对照。
(5) 阅读程序,写出程序的运行结果并理解
#include<iostream>
using namespace std;
class myClass
{
public:
myClass(){ number++;}
~myClass(){ number--;}
static int number;
};
int myClass::number=0;
int main()
{
myClass *ptr;
myClass A,B;
myClass *ptr_Arr=new myClass[3];
ptr=ptr_Arr;
myClass C;
cout<<myClass::number<<endl;
delete []ptr;
return 0;
}
理想运行结果:3
实际运行结果:
错误分析:漏了下面那一句定义数组成员为3的数组调用3次构造函数,所以number是6而不是3.
myClass *ptr_Arr=new myClass[3];