問題及代碼:
/*
Copyright(c)2016,煙臺大學計算機與控制工程學院
All rights reserced
文件名稱:test.cpp
作 者:蔡汝佳
完成日期:2016年4月28日
版 本 號: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;
}
運行結果:
知識點總結:
先依次構造p[1],P[2],P[3],並依次輸出c1c2c3,在構造ci的同時將每個數組元素的i擴大兩倍,i分別爲0 2 4,後執行析構函數時依次輸出d0 d2 d4.
學習心得: