您的位置:首页 > 其它

第九周实践1-阅读程序,写出程序运行结果并理解 (2)

2016-04-27 17:21 459 查看

#include <iostream>
using namespace std;
class MyClass
{
public:
MyClass(int x=0):i(x){cout<<"C"<<i;}
~MyClass(){cout<<"D"<<i;}
void SetValue(int val){i=val;}
int GetVal(){return i;}
private:
int i;
};
int main()
{
MyClass *p[3];
int i;
for (i=0;i<3;i++)
{
p[i]=new MyClass(i);
p[i]->SetValue(p[i]->GetVal()*2);
}
for (i=0; i<3; i++)
delete p[i];
cout<<endl;
return 0;
}


运行结果:



阅读想法:

主函数里面定义一个MyClass类的对象*p[];for循环里给*p[]动态分配内存并执行了3次构造函数每次分别输出C0,C1,C2;另*p[]指向SetValue函数,函数的实参是GetVal()*2;在for循环里同样执行三次,三次的值依次为:0,1,2;所以p[i]也就是SetValue里面的值依次:0,2,4;执行完函数后再进入for循环释放掉*p[]的内存,也就是依次析构函数MyClass,所以依次输出的值是D0,D1,D2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: