1. 程式人生 > >預設拷貝建構函式,淺拷貝,深拷貝

預設拷貝建構函式,淺拷貝,深拷貝

#include 
using namespace std;
class Person
{
 public:
  Person(char *pN)
  {
   cout <<"Constructing "<<pn<<endl;
   pName=new  char (strlen(pN)+1);
   if (pName!=0)
   {
    strcpy(pName,pN);
   }
  }
  
  Person(Person& p)
  {
   cout <<"copying "<<p.pname<<"into its="" own="" block\n";
   pName=new char [sizeof(p.pName)];
   if (pName!=0)
    strcpy(pName,p.pName);
  
  } 
  ~Person()
  {
   cout<<"Destructing "<<pname<<endl;
   pName[0]='\0';
   delete   pName;
  
  }
 
 protected:
  char *pName;
} ;
int main()
{ 
 Person   p1("Randy");
 Person   p2=p1;               //即Person  p2 (p1);
 
}
result is :