c++程序题,高手答,谢谢...

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:46:04
设计一个虚基类Person,派生出父亲类Father、母亲类Mother,间接派生出孩子类Child;其主要数据包括姓、名、年龄,性别,孩子用父亲的姓;要求如下:
 重载构造函数初始化数据成员;
 公有成员函数void SetData([形参列表]);//实现数据成员赋值;
 分别输出数据成员void Display( );
 设计一个Person对象指针数组,完成初始化;
 并按照年龄从大到小排序输出,形式如下:
姓名 年龄 性别 父亲 母亲
王军 49 男 不详 不详
李丽 47 女 不详 不详
张语 35 男 不详 不详
刘美 32 女 不详 不详
王仪 17 女 王军 李丽
张芊 5 女 张语 刘美
忘了题目了,呵呵..是设计一个家庭关系类层次

//类定义文件Person.h
class Person
{
public:
Person(void);
Person( const char *pName, bool bMale, unsigned int age);
virtual ~Person(void);
protected:
char *m_pszName;
bool m_bMale;
unsigned int m_iAge;

public:
virtual void Display()=0;
void SetAge( int age);
unsigned int GetAge();

void SetName( char * name );
char* GetName();

void SetMale( bool bMale );
bool IsMale();

};

class Father : public Person
{
public:
Father(void);
Father(const char *pName, unsigned int age);
~Father(void);
public:
virtual void Display();
};

class Mother : public Person
{
public:
Mother(void);
Mother( const char *pName, unsigned int age);
~Mother(void);
public:
virtual void Display();
};

class Child : public Father
{
public:
Child();
Child(