第九周——动态分配,深复制;

来源:互联网 发布:游戏制作软件下载 编辑:程序博客网 时间:2024/06/01 09:59
  1. /* 
  2. *Copyright (c) 2015,烟台大学计算机学院 
  3. *All rights reserved. 
  4. *文件名称:text.cpp 
  5. *作者:李德彪
  6. *完成日期:2015年4月19日 
  7. *版本号:v1.0 
  8. * 
  9. *问题描述:动态分配,深复制; 
  10. *输入描述:无 
  11. *程序输出:
  12. */  


#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 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->printf();
      delete pa;
      return 0;
  }
 
     
  };
   

 

 

0 0
原创粉丝点击