cinを使用してクラスのメンバー関数内のクラスのプライベートメンバーを読み込もうとしていますが、エラーが発生しています[エラー] 'std :: cin >>((constコース*)this) - > Course :: courseID'? これは可能ですか?ここに私のコードstd::cin
を使用して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
指定子を削除しますあなたは 'const'関数でメンバ変数を変更しようとしています。それは誰にも不可能だが、「シン」はここに責任がある。 –'const'と宣言されたメンバ関数のクラスのメンバを変更することはできません。これには「cin」のメンバーを読み込むことが含まれます。 – Peter
ヘッダーファイルの 'using namespace std;'は私の本の正式な叱責の根拠です – StoryTeller