2017-10-08 1 views
0

cin을 사용하여 클래스의 멤버 함수 내에서 클래스의 private 멤버를 읽으려고하는데 오류가 발생합니다. [오류] '연산자 >>'와 일치하지 않습니다. 'std :: cin >> ((const course *) this) -> Course :: courseID'? 그렇게 할 수 있습니까? 여기 내 코드가C++ 클래스의 멤버 함수에서 cin 사용하기

//Course.h 
#ifndef Course_H 
#define Course_H 
#include<string> 
#include<iostream> 
using namespace std; 
class Course 
{ 
    private: 
     string courseID; 
     string courseName; 
     int credits; 
     Course * nextCourse; 
    public: 
     void EnterCourse() const; 
     void SetNext(Course *); 
     string GetCourseID() const; 
     string GetCourseName() const; 
     int GetCredits() const; 
}; 

void Course::EnterCourse() const 
{ 
    cout<<"=======Enter Course Information========\n" 
     <<"Enter Course ID: \n"; 
    cin>>courseID; 
    cout<<"Enter Course Name: \n"; 
    cin>>courseName; 
    cout<<"Enter credits: \n"; 
    cin>>credits; 
} 



string Course::GetCourseID() const 
{ 
    return courseID; 
} 

string Course::GetCourseName() const 
{ 
    return courseName; 
} 

int Course::GetCredits() const 
{ 
    return credits; 
} 

void Course::SetNext(Course * cou) 
{ 
    nextCourse=cou; 
} 



#endif 
+0

그것은'에 대해 직접적으로하지 않습니다 당신이 그 기능을 달성 할 경우 함수 선언 및 정의에서 const 지정자를 제거 cin'하지만'const' 함수에서 멤버 변수를 변경하려고합니다. 그것은 누구에게도 가능하지 않지만 'cin'은 여기에 책임이 있습니다. –

+0

'const'로 선언 된 멤버 함수에서 클래스의 멤버를 수정할 수 없습니다. 그것은 'cin'에서 회원들을 읽는 것을 포함합니다. – Peter

+0

헤더 파일에'namespace std;를 사용하면 내 책에 정식 견책을 내 주겠다. – StoryTeller

답변

관련 문제