第八周项目32-对程序运行结果的理解

  1. /* 
  2. *Copyright (c) 2015,烟台大学计算机学院 
  3. *All rights reserved. 
  4. *文件名称:text.cpp 
  5. *作者:李德彪
  6. *完成日期:2015年4月23日 
  7. *版本号:v1.0 
  8. * 
  9. *问题描述: 理解程序的运行方式 
  10. *输入描述: 无 
  11. *程序输出: 调用构造函数以及析构函数的顺序 
  12. */  
  13. #include <iostream>  
  14. using namespace std;  
  15. class A  
  16. {  
  17. public:  
  18.     A(){cout<<"A";}  
  19.     ~A(){cout<<"~A";}  
  20. };  
  21.   
  22. class B  
  23. {  
  24.     A *p;  
  25. public:  
  26.     B()  
  27.     {  
  28.         cout<<"B";  
  29.         p=new A();  
  30.     }  
  31.     ~B()  
  32.     {  
  33.         cout<<"~B";  
  34.         delete p;  
  35.     }  
  36. };  
  37. int main()  
  38. {  
  39.     B obj;  
  40.     return 0;  
  41. }  
/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:徐健
*完成日期:2015年4月23日
*版本号:v1.0
*
*问题描述: 理解程序的运行方式
*输入描述: 无
*程序输出: 调用构造函数以及析构函数的顺序
*/
#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;
}

2.

  1. #include <iostream>  
  2. using namespace std;  
  3. class MyClass  
  4. {  
  5. public:  
  6.     MyClass(int x=0):i(x){cout<<"C"<<i;}  
  7.     ~MyClass(){cout<<"D"<<i;}  
  8.     void SetValue(int val){i=val;}  
  9.     int GetVal(){return i;}  
  10. private:  
  11.     int i;  
  12. };  
  13. int main()  
  14. {  
  15.     MyClass *p[3];  
  16.     int i;  
  17.     for (i=0; i<3; i++)  
  18.     {  
  19.         p[i]=new MyClass(i);  
  20.         p[i]->SetValue(p[i]->GetVal()*2);  
  21.     }  
  22.     for (i=0; i<3; i++)  
  23.         delete p[i];  
  24.     cout<<endl;  
  25.     return 0;  
  26. }  
#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;
}

3.

  1. #include <iostream>  
  2. using namespace std;  
  3. class AA  
  4. {  
  5. public:  
  6.     AA(int i,int j)  
  7.     {  
  8.         A=i;  
  9.         B=j;  
  10.         cout<<"Constructor\n";  
  11.     }  
  12.     AA(AA &obj)  
  13.     {  
  14.         A=obj.A+1;  
  15.         B=obj.B+2;  
  16.         cout<<"Copy_Constructor\n";  
  17.     }  
  18.     ~AA() {  
  19.         cout<<"Destructor\n";  
  20.     }  
  21.     void print()  
  22.     {  
  23.         cout<<"A="<<A<<",B="<<B<<endl;  
  24.     }  
  25. private:  
  26.     int A,B;  
  27. };  
  28. int main()  
  29. {  
  30.     AA a1(2,3);  
  31.     AA a2(a1);  
  32.     a2.print();  
  33.     AA *pa=new AA(5,6);  
  34.     pa->print();  
  35.     delete pa;  
  36.     return 0;  
  37. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值