Как передать строку указателю на массив класса объекта? - PullRequest
1 голос
/ 15 марта 2012

ОК, поэтому я создал класс под названием Courses с частными функциями-членами courseName, creditHours, grade и courseNumber.

Поскольку это домашняя работа, и мы только что рассмотрели указатели и динамическое выделение памяти, мне нужно прочитатьв количестве пройденных курсов студент динамически создает массив типов курсов и предлагает пользователю ввести информацию о курсах.Вот как инструктор хочет, чтобы это было сделано.

Ниже приведена функция, которая у меня есть для создания и заполнения массива, но я не уверен, как на самом деле его заполнить.

Course readCourseArray(int coursesTaken)
{
    cout<<"\nHow many courses has the student taken?\n";
    cin>>coursesTaken;

    Course *courses = new Course[coursesTaken];

    for(int count = 0; count < coursesTaken; count++)
        {
            cout<<"Enter name for course "<<count+1<<endl;
            getline(cin,courses[count].courseName);
            }

    return *courseArray;

}

Моя проблема в части getline.Я получаю красное закорочение, и оно говорит, что courseName недоступно, и я не могу придумать другой способ пройти через цикл.

В моем файле спецификации класса у меня есть

void setCourseName (string _courseName)
{courseName=_courseName;};

Но я неНе знаю, как бы я использовал это для циклического перемещения по массиву.

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Похоже, courseName является закрытой переменной-членом.private означает, что вы не можете получить к нему доступ вне класса.Чтобы использовать getline, создайте временную строку:

string temp;
getline(cin, temp);
courses[count].setCourseName(temp);
1 голос
/ 15 марта 2012

courseName является закрытой переменной, поэтому вы не можете получить к ней доступ таким образом.Вот что вы должны сделать:

  1. Создать временную переменную std::string.
  2. Использовать getline в этой строке.
  3. Передать эту строку в setCourseName.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...