【发布时间】:2018-03-19 18:49:09
【问题描述】:
我正在尝试使用 cin 在类的成员函数中读取类的私有成员,我收到错误 [Error] no match for 'operator>>' in 'std::cin >> (( const Course*)this)->Course::courseID' ? 有可能这样做吗?这是我的代码
//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
【问题讨论】:
-
这与
cin没有直接关系,但您正在尝试更改const函数中的成员变量。这对任何人来说都是不可能的,但cin在这里受到了指责。 -
不能在声明
const的成员函数中修改类的成员。这包括阅读来自cin的成员。 -
using namespace std;在头文件中是我书中正式谴责的理由
标签: c++