Вы, вероятно, из Java
фона ... поэтому вам придется научиться жить без new
некоторое время:)
В C ++ есть 2 способа создания объектов:
- объекты с автоматической продолжительностью хранения (созданные в стеке)
- объекты с динамическим сроком хранения (созданные в куче)
new
создает объекты второго рода, для которых ВЫ должны обеспечить надлежащую утилизацию (вызывая delete
в соответствии с учебниками, но ... пока мы будем избегать этого).
Здесь вам не нужно new
:
std::vector<Student> students; // create an empty `vector` of `Student` objects
students.push_back(Student("bob")); // push a new Student in the vector
Что касается функции, у вас есть несколько возможностей:
- заставить его вернуть объект
- передать объект по ссылке
void addStudent(std::vector<Student>& students);
- передать по указателю, но затем использовать адрес оператора , чтобы добраться до него
addStudent(&students);
Вам не обязательно использовать указатели повсюду в C ++ ... на самом деле, для начала, вероятно, лучше не использовать.
О, и вам определенно нужен хороший учебник, это базовый материал, и вы не сможете войти в C ++ без скучных основ ... извините: /