编写 C++程序, 有一个学生类 Stu,包括学生姓名、成绩,一个教师类 Tea,包括教师姓 名、职称。这两个类共用一个友元函数,输出信息:学生姓名、成绩、教师姓名、职称。
时间: 2024-01-12 11:04:10 浏览: 72
好的,下面是代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Tea; // 前向声明
class Stu {
private:
string name;
int score;
public:
Stu(string n, int s) : name(n), score(s) {}
friend void print(Stu& s, Tea& t);
};
class Tea {
private:
string name;
string title;
public:
Tea(string n, string t) : name(n), title(t) {}
friend void print(Stu& s, Tea& t);
};
void print(Stu& s, Tea& t) {
cout << "学生姓名:" << s.name << endl;
cout << "学生成绩:" << s.score << endl;
cout << "教师姓名:" << t.name << endl;
cout << "教师职称:" << t.title << endl;
}
int main() {
Stu s("小明", 90);
Tea t("张老师", "教授");
print(s, t);
return 0;
}
```
这里使用了友元函数,可以访问两个类的私有成员。在定义时需要在类中声明友元函数,可以写成类外的函数,也可以写成另一个类的成员函数。在本例中,我们定义了一个名为 `print` 的友元函数,用于输出学生和教师的信息。在 `main` 函数中先创建了一个学生对象和一个教师对象,然后调用 `print` 函数输出信息。
阅读全文