解析拷貝構造

深拷貝:

class Time

{

   public: 

   int * hour, *minute ,*second;

   Time(int a = 0,int b = 0 ,int c = 0)

   {

   hour = new int (a);

   minute = new int(b);

   second = new int (c);

   }

  Time(const Time& a)

  {

  hour = new int(*(a.hour));

  minute = new int(*(b.minute));

 second = new int(*(c.second));

  }

~Time() { delete hour,minute,second;}

void print()

{

   cout<<*hour<<":"<<*minute<<“:"<<*second<<" “<<endl;

}

};

int main()

{

  Time t1(2,22,22);

  Time t2(t1);

  t1.print();

  t2.print();

  *(t2.hour) = 4;

t1.print();

t2.print();

return 0 ;

}

淺拷貝:

class Time

{

public:

int * hour, *minute ,*second;

Time(int a = 0,int b = 0 ,int c = 0)

{

hour = new int (a);

minute = new int(b);

second = new int (c);

}

~Time() { delete hour,minute,second;}

void print()

{

cout<<*hour<<":"<<*minute<<“:"<<*second<<" “<<endl;

}

};

int main()

{

Time t1(2,22,22);

Time t2(t1);

t1.print();

t2.print();

*(t2.hour) = 4;

t1.print();

t2.print();

return 0 ;

}

哎 好久沒有那麼嗨了,哎 項目就好上線了,加油吧,同仁們

 

發佈了23 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章