用c++实现学校(School)拥有多名教师(Teacher)(提示:可以使用指针数组或者指向指针的指针),每名教师知道自己所在的学校。
时间: 2023-07-20 07:14:59 浏览: 54
可以使用指针数组来实现学校拥有多名教师的情况,代码如下:
```c++
#include <iostream>
using namespace std;
class Teacher {
public:
Teacher(string name) {
this->name = name;
}
void setSchool(string school) {
this->school = school;
}
string getSchool() {
return school;
}
private:
string name;
string school;
};
class School {
public:
School(string name, int numTeachers) {
this->name = name;
this->numTeachers = numTeachers;
teachers = new Teacher*[numTeachers];
for (int i = 0; i < numTeachers; i++) {
teachers[i] = new Teacher("Teacher " + to_string(i+1));
teachers[i]->setSchool(name);
}
}
~School() {
for (int i = 0; i < numTeachers; i++) {
delete teachers[i];
}
delete [] teachers;
}
private:
string name;
int numTeachers;
Teacher** teachers;
};
int main() {
School school("ABC School", 3);
for (int i = 0; i < 3; i++) {
cout << school.getTeacher(i)->getSchool() << endl;
}
return 0;
}
```
在上面的代码中,我们定义了两个类:Teacher 和 School。Teacher 类表示教师,包含了教师的名字和所在学校。School 类表示学校,包含了学校的名字和教师人数,以及一个指向指针的指针 teachers,指针数组的元素就是指向 Teacher 对象的指针。
在 School 类的构造函数中,我们首先为指针数组分配内存,然后用 for 循环初始化每个教师对象,并将其所在学校设置为当前学校。在 School 类的析构函数中,我们需要手动释放每个教师对象的内存,以及指针数组的内存。
在 main 函数中,我们创建了一个名为 "ABC School" 的学校对象,并打印出每个教师所在的学校。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)