#include<iostream> using namespace std; class Student { public: Student(string nu = "无", string na ="无", char s = 'm') :num(nu), name(na), sex(s) {} string getnum(); string getname(); char getsex(); void display(); private: string num; string name; char sex; //m为男性,f为女性 }; string Student::getnum() { return num; } string Student::getname() { return name; } char Student::getsex() { return sex; } void Student::display() { cout << "电话号码:" << num << " 姓名:" << name << " 性别:" << sex << endl; } class Teacher { public: Teacher(string nu = "无", string na = "无", char s = 'm',double p = 0) :num(nu), name(na), sex(s),pay(p) {} Teacher(Student &); void display(); private: string num; string name; char sex; double pay; //工资 }; void Teacher::display() { cout << "电话号码:" << num << " 姓名:" << name << " 性别:" << sex << " 工资: " << pay <<endl; } Teacher::Teacher(Student& s) { this->num = s.getnum(); this->name = s.getname(); this->sex = s.getsex(); this->pay = 0; } int main() { Student s("10010", "LiHua", 'm'); Teacher t = Teacher(s); t.display(); return 0; }
时间: 2024-03-24 13:41:02 浏览: 149
这是一个简单的C++程序,实现了一个包含Student和Teacher两个类的简单管理系统。其中,Teacher类包含了一个Student对象作为其中的一个属性,并且可以从Student对象中获取一些信息。以下是这个程序的解析:
1. 首先是包含头文件iostream,并使用命名空间std。
```c++
#include<iostream>
using namespace std;
```
2. 然后定义了一个Student类,包含了三个私有属性num,name和sex,分别表示学生的电话号码、姓名和性别。类中定义了一个构造函数,可以接收三个参数,分别为电话号码、姓名和性别,如果没有传入参数,则默认值为“无”和“m”。
```c++
class Student {
public:
Student(string nu = "无", string na ="无", char s = 'm') :num(nu), name(na), sex(s) {}
string getnum();
string getname();
char getsex();
void display();
private:
string num;
string name;
char sex; //m为男性,f为女性
};
```
3. 接着在Student类中定义了三个公有方法,分别为getnum、getname和getsex,用于获取学生的电话号码、姓名和性别。还定义了一个display方法,可以将学生的信息输出到屏幕上。
```c++
string Student::getnum() {
return num;
}
string Student::getname() {
return name;
}
char Student::getsex() {
return sex;
}
void Student::display() {
cout << "电话号码:" << num << " 姓名:" << name << " 性别:" << sex << endl;
}
```
4. 然后定义了一个Teacher类,包含了四个属性,分别为电话号码、姓名、性别和工资。其中,工资属性的默认值为0。Teacher类中包含了一个构造函数,可以接收四个参数,分别为电话号码、姓名、性别和工资,默认值为“无”、“m”和0。同时,Teacher类中还定义了一个构造函数,可以接收一个Student对象作为参数,并从中获取学生的信息。最后,Teacher类中还定义了一个display方法,用于将教师的信息输出到屏幕上。
```c++
class Teacher {
public:
Teacher(string nu = "无", string na = "无", char s = 'm',double p = 0) :num(nu), name(na), sex(s),pay(p) {}
Teacher(Student &);
void display();
private:
string num;
string name;
char sex;
double pay; //工资
};
Teacher::Teacher(Student& s) {
this->num = s.getnum();
this->name = s.getname();
this->sex = s.getsex();
this->pay = 0;
}
void Teacher::display() {
cout << "电话号码:" << num << " 姓名:" << name << " 性别:" << sex << " 工资: " << pay <<endl;
}
```
5. 最后,在主函数中创建了一个Student对象s,传入了电话号码、姓名和性别三个参数,并使用这个对象创建了一个Teacher对象t。然后调用了Teacher对象的display方法,输出了教师的信息。
```c++
int main() {
Student s("10010", "LiHua", 'm');
Teacher t = Teacher(s);
t.display();
return 0;
}
```
阅读全文