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
그것은'에 대해 직접적으로하지 않습니다 당신이 그 기능을 달성 할 경우 함수 선언 및 정의에서
const
지정자를 제거 cin'하지만'const' 함수에서 멤버 변수를 변경하려고합니다. 그것은 누구에게도 가능하지 않지만 'cin'은 여기에 책임이 있습니다. –'const'로 선언 된 멤버 함수에서 클래스의 멤버를 수정할 수 없습니다. 그것은 'cin'에서 회원들을 읽는 것을 포함합니다. – Peter
헤더 파일에'namespace std;를 사용하면 내 책에 정식 견책을 내 주겠다. – StoryTeller