您的位置:首页 > 其它

第六周——程序阅读(二)

2015-04-08 19:19 239 查看
问题及代码:

/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved.
*文件名称:lily.cpp
*作者:李莉
*完成日期:2014年4月8日
版本号: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;
}


运行结果:



自我理解:

在定义的对象中,是定义的数组对象,而且对象的输入是按照循环的,于是会依次调用构造函数,而且会输出相应的C0C1C2等,同时有一点是,其余的成员函数无输出,但是有一点是,每次执行过其他的成员函数后,i的值会变成原来的两倍,于是输出的结果只有之前的,然后跳出循环后,又按照循环依次析构,此时i的值已经是之前的两倍了,因此数出的是D0D2D4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: