C++ 类设计:Person、Date、Student 和 Teacher 类示例
C++ 类设计:Person、Date、Student 和 Teacher 类示例
本文将通过示例代码展示如何用 C++ 定义 Person、Date、Student 和 Teacher 类,并演示如何使用这些类创建对象,并进行基本操作。
1. 类定义
class Person {
private:
string name;
int age;
public:
Person(string n, int a);
string getName();
int getAge();
};
class Date {
private:
int year;
int month;
int day;
public:
Date(int y, int m, int d);
int getYear();
int getMonth();
int getDay();
};
class Student : public Person {
private:
Date birthday;
double score;
public:
Student(string n, int a, Date b, double s);
Date getBirthday();
double getScore();
};
class Teacher : public Person {
private:
string title;
public:
Teacher(string n, int a, string t);
string getTitle();
void setScore(Student &s, double score);
};
2. 主函数
int main() {
// 创建一个生日为1999年3月1日的学生,成绩为90分
Date birthday(1999, 3, 1);
Student s('张三', 20, birthday, 90.0);
// 创建一个职称为教授的教师
Teacher t('李四', 35, '教授');
// 输出学生和教师的信息
cout << '学生信息:' << endl;
cout << '姓名:' << s.getName() << endl;
cout << '年龄:' << s.getAge() << endl;
cout << '生日:' << s.getBirthday().getYear() << '年' << s.getBirthday().getMonth() << '月' << s.getBirthday().getDay() << '日' << endl;
cout << '成绩:' << s.getScore() << endl;
cout << endl;
cout << '教师信息:' << endl;
cout << '姓名:' << t.getName() << endl;
cout << '年龄:' << t.getAge() << endl;
cout << '职称:' << t.getTitle() << endl;
// 重新指定学生的成绩为80分
t.setScore(s, 80.0);
// 输出学生的新信息
cout << endl;
cout << '学生新信息:' << endl;
cout << '姓名:' << s.getName() << endl;
cout << '年龄:' << s.getAge() << endl;
cout << '生日:' << s.getBirthday().getYear() << '年' << s.getBirthday().getMonth() << '月' << s.getBirthday().getDay() << '日' << endl;
cout << '成绩:' << s.getScore() << endl;
return 0;
}
解释:
- Person 类: 包含姓名和年龄两个数据成员,提供获取姓名和年龄的方法。
- Date 类: 包含年、月、日三个数据成员,提供获取年、月、日的方法。
- Student 类: 继承自 Person 类,并包含生日和成绩两个数据成员,提供获取生日和成绩的方法。
- Teacher 类: 继承自 Person 类,并包含职称数据成员,提供获取职称和修改学生成绩的方法。
主函数部分:
- 创建一个
Student对象,设置姓名、年龄、生日和成绩。 - 创建一个
Teacher对象,设置姓名、年龄和职称。 - 打印学生和教师的信息。
- 通过
Teacher对象的setScore方法修改Student对象的成绩。 - 再次打印学生信息,可以看到成绩已经更新。
注意:
- 代码示例中省略了构造函数和成员函数的实现,您可以根据需求自行补充。
- 可以根据需要添加其他数据成员和成员函数,例如可以为 Student 类添加入学时间、专业等数据成员。
- 以上示例仅展示了简单的类设计和使用,您可以根据实际需求进行扩展和修改。
希望以上内容能够帮助您理解 C++ 类设计的基本概念。
原文地址: https://www.cveoy.top/t/topic/nBFx 著作权归作者所有。请勿转载和采集!