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

How do I pass a string to a pointer to object class array?

本文关键字:对象 数组 指针 字符串      更新时间:2023-10-16

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

但我也不知道该如何使用它在数组中循环。

看起来courseName是一个私有成员变量。private意味着您不能在类之外访问它。要使用getline,请创建一个临时字符串:

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

courseName是一个私有变量,因此您不能这样访问它。以下是您应该做的:

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