person1.h

来自「C++实训教程」· C头文件 代码 · 共 56 行

H
56
字号
//Person1.H
#if !defined(Person1_H)
#define Person1_H
class Person 
{
      char* name;
      int age;
   public:
      Person() 
      {
	    cout << "Init default" << endl;
	    name = (char*)0;
	    age = 0;
      }
      Person(char* name) 
      {
	    cout << "Initalizing " << name << endl;
	    name = new char[strlen(name) + 1];
	    if (name)		strcpy(name, name);
	    age = 0;
      }
      Person(char* n, int a) 
      {
	    cout << "Init " << n << " " << a << endl;
	    name = new char[strlen(n) + 1];
	    if (name) strcpy(name, n);
	    age = a;
      }
      Person(Person& pRef) 
      {
	    cout << "Copying " << pRef.age << " " << pRef.name  << endl;
	    name =	(char*) 0;
	    age  = 0;
	    if (pRef.name) 
	    {
	      name = new char[strlen(pRef.name) +1];
	      if (name)  strcpy(name, pRef.name);
	    }
	    if (pRef.age) { age = pRef.age; }
      }
      Person& operator = (Person& pRef) 
      {
	    name = new char[strlen(pRef.name) + 1];
	    if (name ) strcpy(name, pRef.name);
	    age = pRef.age;
	    return *this;
      }
      ~Person() 
      {
	     cout << "Destroying " << (name ? name : "<default>")
				<< " "<< (age ? age : 0) << endl;
	     if (name) { delete name;  age = 0; }
      }
};
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?