f0917.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // f0917.cpp
  3. // copy constructor
  4. //=====================================
  5. #include<iostream>
  6. using namespace std;
  7. //-------------------------------------
  8. class Person{
  9.   char* pName;
  10. public:
  11.   Person(char* pN="noName"){
  12.     cout<<"Constructing "<<pN<<"n";
  13.     pName = new char[strlen(pN)+1];
  14.     if(pName) strcpy(pName,pN);
  15.   }
  16.   Person(const Person& s){
  17.     cout<<"copy Constructing "<<s.pName<<"n";
  18.     pName = new char[strlen(s.pName)+1];
  19.     if(pName) strcpy(pName, s.pName);
  20.   }
  21.   Person& operator=(Person& s){
  22.     cout<<"Assigning "<<s.pName<<"n";
  23.     if(this==&s) return s;
  24.     delete[] pName;
  25.     pName = new char[strlen(s.pName)+1];
  26.     if(pName) strcpy(pName,s.pName);
  27.     return *this;
  28.   }
  29.  ~Person(){
  30.     cout <<"Destructing "<<pName<<"n";
  31.     delete[] pName;
  32.   }
  33. };//-----------------------------------
  34. int main(){
  35.   Person p1("Randy");
  36.   Person p2("Jenny");
  37.   p2 = p1;
  38. }//====================================
  39.