有一个学生类 Stu,包括学生姓名、成绩,一个教师类 Tea,包括教师姓名、职称。同时这两个类的人数至少要有4个人这两个类共用一个友元函数,输出信息:学生姓名、成绩、教师姓名、职称。
时间: 2024-01-12 14:04:29 浏览: 112
好的,我来为您解答这个问题。
首先,我们需要定义学生类Stu和教师类Tea,代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
class Tea; // 前置声明
class Stu {
public:
Stu(string n, int s) : name(n), score(s) {}
friend void showInfo(Stu s, Tea t); // 声明友元函数
private:
string name; // 学生姓名
int score; // 成绩
};
class Tea {
public:
Tea(string n, string p) : name(n), post(p) {}
friend void showInfo(Stu s, Tea t); // 声明友元函数
private:
string name; // 教师姓名
string post; // 职称
};
```
接下来,我们需要实现友元函数showInfo,输出学生姓名、成绩、教师姓名、职称。代码如下:
```c++
void showInfo(Stu s, Tea t) {
cout << "学生姓名:" << s.name << endl;
cout << "成绩:" << s.score << endl;
cout << "教师姓名:" << t.name << endl;
cout << "职称:" << t.post << endl;
}
```
最后,我们需要创建至少4个学生和教师对象,并调用showInfo函数输出它们的信息。代码如下:
```c++
int main() {
Stu s1("张三", 90);
Stu s2("李四", 80);
Tea t1("王老师", "讲师");
Tea t2("李老师", "教授");
showInfo(s1, t1);
showInfo(s2, t1);
showInfo(s1, t2);
showInfo(s2, t2);
return 0;
}
```
完整代码如下:
阅读全文