题目
定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份,一个构造函数,一析构函数,读取数据的成员函数,一个print()成员函数显示所有数据。
#include <iostream>
using namespace std;
class Person
{ public:
Person(char* =0, int =0, int =0);
~Person() { delete [] name; }
char* name() { return name; }
int born() { return yob; }
int died() { return yod; }
void print();
private:
int len;
char* name;
int yob, yod;
};
void main()
{ Person cb("Charles Babbage",1792,1871);
cb.print();
}
Person::Person(char* name, int yob, int yod)
: len(strlen(name)),
name(new char[len+1]),
yob(yob),
yod(yod)
{ memcpy(name, name, len+1);
}
void Person::print()
{ cout << "\tName: " << name << endl;
if (yob) cout << "\tBorn: " << yob << endl;
if (yod) cout << "\tDied: " << yod << endl;
}