2012-03-15 88 views
1

好吧,我已经做了一个名为课程与私人成员函数courseName,creditHours,等级和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;}; 

但我不知道我怎么会用它来循环数组要么。

+4

您可以像这样使用'setCourseName'吗?函数getline(CIN,温度);课程[count] .setCourseName(temp);' – twain249 2012-03-15 19:23:43

+0

这似乎会工作!感谢我忙着试图想出一些使用临时数组的方式,但这更容易:] – sircrisp 2012-03-15 19:26:50

回答

1

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

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

courseName是一个私有变量,所以你不能像那样访问它。这里是你应该做的:

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