您的位置:首页 > 其它

第5周-项目0-阅读程序

2015-04-11 13:12 281 查看
</pre><p>问题及代码:</p></div><pre class="cpp" name="code">#include <iostream>
using namespace std;
class A
{
public:
    A()
    {
        cout<<"A";
    }
    ~A()
    {
        cout<<"~A";
    }
};
class B
{
    A *p;
public:
    B()
    {
        cout<<"B";
        p=new A();
    }
    ~B()
    {
        cout<<"~B";
        delete p;
    }
};
int main()
{
    B obj;
    return 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;
}


运行结果:



问题及代码:

#include <iostream>
using namespace std;
class B
{
public:
    B()
    {
        cout<<"default constructor"<<endl;
    }
    ~B()
    {
        cout<<"destructed"<<endl;
    }
    B(int i):data(i)
    {
        cout<<"constructed: " << data <<endl;
    }
private:
    int data;
};
B Play(B b)
{
    return b ;
}
int main()
{
    B temp = Play(5);
    return 0;
}


运行结果:



问题及代码:

#include <iostream>
using namespace std;
class example
{
public:
    example()
    {
        cout<<"Default Constructing! "<<endl;
    }
    example(int n)
    {
        i=n;
        cout<<"Constructing: "<<i<<endl;
    }
    ~example()
    {
        cout <<"Destructing: "<<i<<endl;
    }
    int get_i()
    {
        return i;
    }
private:
    int i;
};
int sqr_it(example o)
{
    return o.get_i()* o.get_i();
}
int main()
{
    example x(10);
    cout<<x.get_i()<<endl;
    cout<<sqr_it(x)<<endl;
    return 0;
}


运行结果:



问题及代码:

#include <iostream>
using namespace std;
class AA
{
public:
    AA(int i,int j)
    {
        A=i;
        B=j;
        cout<<"Constructor\n";
    }
    AA(AA &obj)
    {
        A=obj.A+1;
        B=obj.B+2;
        cout<<"Copy_Constructor\n";
    }
    ~AA()
    {
        cout<<"Destructor\n";
    }
    void print()
    {
        cout<<"A="<<A<<",B="<<B<<endl;
    }
private:
    int A,B;
};
int main()
{
    AA a1(2,3);
    AA a2(a1);
    a2.print();
    AA *pa=new AA(5,6);
    pa->print();
    delete pa;
    return 0;
}


运行结果:



知识点总结:

析构函数的调用。

学习心得:

感觉析构函数到底什么时候调用以及如何调用比较难把握,通过观察程序运行和结果有了很好的认识。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: