9週目のプロジェクトはプログラムの実行結果を書き出して理解する(2)

1082 ワード

/*copyright(c)2016.         
 * All rights reserved,
 *     :text.Cpp
 *   :   
 *     :2016 4 17 
 *    :vc++6.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;
}

実行結果:
         C0C1C2D0D2D4
C 0 C 1 C 2:MyClassがダイナミックメモリを割り当てた場合、コンストラクタを実行し、「Ci」を出力するとともに、iも実行中に変化する(i=0、i=1、i=2)
D 0 D 2 D 4:コンストラクション関数を実行した後、SetValueを実行し、iの値を変更し(i=0,i=2,i=4)、架空の関数を実行します.