Массивы в классе С++
Необходимо решить такую задачку на С++: написать класс "Школа". В нём должны быть номер школы, список учителей, список учеников. Также добавить геттеры и сеттеры для элементов, функции для удаления и добавления учеников и учителей. Написал вот такую программу.
#include <iostream>
class School {
private:
int number;
// список учителей
// список учеников
public:
int getNumber() {
return number;
}
void setNumber(int m_number) {
number = m_number;
}
};
int main() {
;
}
Не понимаю, как сделать динамические массивы (как в пайтоне), а также геттеры и сеттеры для них. Если знаете, буду рад помощи)
Ответы (1 шт):
Автор решения: el_madcapo
→ Ссылка
Вот базовый функционал, с реализацией добавления и удаления учителей. Остальной функционал (удаление по имени, количество)добавить не сложно, достаточно посмотреть https://ru.cppreference.com/w/cpp/container/vector .
#include <iostream>
#include <vector>
#include <string>
class School
{
public:
School(int number):number_(number){};
School(int number, std::vector<std::string> teachers, std::vector<std::string> students): number_(number), teachers_(teachers), students_(students){};
void addTeacher(std::string name)
{
teachers_.push_back(name);
}
void removeTeacher()
{
teachers_.pop_back();
}
void teachersNo()
{
std::cout << "teachers : " << teachers_.size() << '\n';
}
private:
int number_;
std::vector<std::string> teachers_;
std::vector<std::string> students_;
};
int main() {
School school(23);
school.addTeacher("jane");
school.addTeacher("mary");
school.teachersNo();
school.removeTeacher();
school.teachersNo();
std::cout << "Hello World!\n";
}