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

C#编程

开发平台:

Visual C++

  1. //**********************
  2. //**    ch18_7.cpp    **
  3. //**********************
  4. #include <string.h>
  5. #include <iostream.h>
  6. class Name{
  7. public:
  8.   Name(){ pName = 0; }
  9.   Name(char* pn){ copyName(pn); }
  10.   Name(Name & s){ copyName(s.pName); }
  11.   ~Name(){ deleteName(); }
  12.   Name & operator =(Name & s)          //赋值运算符
  13.   {
  14.     deleteName();
  15.     copyName(s.pName);
  16.     return *this;
  17.   }
  18.   void display(){ cout << pName << endl; }
  19. protected:
  20.   void copyName(char* pN);
  21.   void deleteName();
  22.   char* pName;
  23. };
  24. void Name::copyName(char* pN)
  25. {
  26.   pName = new char[strlen(pN) + 1];
  27.   if(pName)
  28.     strcpy(pName, pN);
  29. }
  30. void Name::deleteName()
  31. {
  32.   if(pName){
  33.     delete pName;
  34.     pName = 0;
  35.   }
  36. }
  37. void main()
  38. {
  39.   Name s("claudette");
  40.   Name t("temporary");
  41.   t.display();
  42.   t = s;               //赋值
  43.   t.display();
  44. }