2012-03-15 130 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
相關問題