Массивы в классе С++

Необходимо решить такую задачку на С++: написать класс "Школа". В нём должны быть номер школы, список учителей, список учеников. Также добавить геттеры и сеттеры для элементов, функции для удаления и добавления учеников и учителей. Написал вот такую программу.

#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";
}
→ Ссылка