如何将字符串传递给指向对象类数组的指针?

时间:2012-03-15 19:20:05

标签: c++ arrays pointers

好的,所以我创建了一个名为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 个答案:

答案 0 :(得分:1)

courseName是一个私有变量,因此您无法像这样访问它。这是你应该做的:

  1. 制作一个临时std::string变量。
  2. 在该字符串上使用getline
  3. 将该字符串传递给setCourseName

答案 1 :(得分:1)

看起来courseName是私有成员变量。 private表示您无法在课堂外访问它。要使用getline,请创建一个临时字符串:

string temp;
getline(cin, temp);
courses[count].setCourseName(temp);