首页 > 试题广场 >

有人定义一个教师类派生一个学生类。他认为“姓名”和“性别”是

[问答题]

有人定义一个教师类派生一个学生类。他认为“姓名”和“性别”是教师、学生共有的属性,声明为public,“职称”和“工资”是教师特有的,声明为private。在学生类中定义特有的属性“班级”和“成绩”。所以有:

class teacher
{
public :
char name[20];  char sex;
//…
private :
char title[20]; double salary;
};
class student : public teacher
{
//…
private :
char grade[20]; int score;
};

你认为这样定义合适吗?请给出你认为合理的类结构定义。

推荐

不合适,这样导致数据冗余。合理的结构是提取它们共有的数据和操作定义一个基类,然后分别定义teacher和student作为派生类。

class person
{ protected:
char name[20];  char sex;
//……
};
class teacher : public teache
{ //……
private:
char title[20]; double salary;
};
class student : public teacher
{ //……
private :
char grade[20] ; int score;
};

发表于 2018-05-07 15:16:34 回复(0)