У меня есть эта маленькая программа, и мне нужно динамически создавать объект класса.
Смотрите комментарии ниже.
#include <conio.h>
#include "student.h"#include "teacher.h"
int main() {
short choose;
do {
std::cout << "\n1 - Insert student";
std::cout << "\n2 - Insert teacher";
std::cout << "\n3 - Show students";
std::cout << "\n4 - Show teachers";
std::cout << "\n5 - Exit";
std::cout << "\n--> ";
std::cin >> choose;
Student *students;
switch (choose) {
case 1 :
// When user choose option 1, I would like to create
// a new object "Student", so...
students = new Student();
// But if user choose 1 another time, how I create
// another object "Student" ?
// Could I do something like this?
// students = new Student[student_counter];
break;
}
} while (choose != 5);
system("pause");
return 0;
}
У студенческого класса есть конструктор.
Спасибо. Если что-то требуется, просто скажите мне.
Просто используйте std::vector<Student>
, Там нет необходимости для динамического выделения вообще:
std::vector<Student> students;
do {
switch (choose) {
case 1 :
students.push_back(Student());
break;
}
}while(...)
если ты нужно использовать динамическое распределение, так как это было частью назначения, просто используйте std::vector<Student*>
а также students.push_back(new Student)
, Вы должны будете вручную освободить память впоследствии.
Других решений пока нет …