/*
*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:刘涛
*完成日期:2016年4月23号
*版 本 号:v1.0
*
*问题描述:动态分配内存
*/
#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指针开辟空间,执行构造函数,i=0的时候,输出一个C,p[i]->SetValue(p[i]->GetVal()*2),p[i]->SetValue(0*2)还是为0;i=1,p[i]->SetValue(1*2)等于2.i=2的时候,等于4;最后再一次执行析构函数,输出D0D2D4.