您的位置:首页 > 其它

第六周阅读程序2:构造函数与析构函数

2015-04-15 08:28 260 查看
问题及代码:

#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);
    }
    /*循环三词,创建三个对象
    p[0]  构造函数输出   C0;
    GetVal(int)  令i*2=0 SetValue(int)  i=0;
    p[1]  构造函数输出   C1;
    GetVal(int)  令i*2=2 SetValue(int)  i=2;
    p[2]  构造函数输出   C2;
    GetVal(int)  令i*2=4 SetValue(int)  i=4;
    */
    for (i=0; i<3; i++)
        delete p[i];
    /*
    循环三次,执行三次析构函数
    分别输出
    D0D2D4
    */
    cout<<endl;
    //所以最后输出的结果是  C0C1C2D0D2D4
    return 0;

执行结果:



知识点总结:

详细分析构造函数与析构函数之间的运行机制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: