Мне нужно изучить управление памятью в классе и как динамически распределять память с помощью оператора new
.
У меня есть структура, которая
struct Course
{
int courseNumber, creditHours;
string courseName;
char grade;
};
Я пытаюсь заполнить переменные-члены циклом for, но я не уверен, как использовать getline
с courseName
. Я смог использовать обычный cin
, но он не будет работать, если в имени класса есть пробелы.
Ниже мой код и то, что я пробовал, но я получаю сообщение об ошибке, что courseArray не определено.
Course* readCourseArray(int &courses) //Read Courses
{
cout<<"\nHow many courses is the student taking?\n";
cin>>courses;
const int *sizePTR = &courses;
Course *coursePTR = new Course[*sizePTR];
for(int count = 0; count < *sizePTR; count++) //Enter course information
{
cout<<"\nEnter student "<<count+1<<"'s course name\n";
getline(cin,courseArray[count].courseName);
cout<<"\nEnter student "<<count+1<<"'s course number\n";
cin>>coursePTR[count].courseNumber;
cout<<"\nEnter student "<<count+1<<"'s credit hours\n";
cin>>coursePTR[count].creditHours;
cout<<"\nEnter student "<<count+1<<"'s grade\n";
cin>>coursePTR[count].grade;
}
return coursePTR;
}