学生オブジェクトをそのまま出力するために、 << 演算子をオーバーロードしようとしています。
Student: <name>,<number>,<email address>,<year>,<major>
次のようなプログラムをコンパイルしようとすると、エラーが発生し続けます。
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const std::string' (or there is no acceptable conversion)
私の実装ファイルの関数は次のようになります。
ostream& operator<<(ostream& output, const Student& student)
{
output << "Student: " << student.name <<", " << student.m_Number <<", " << student.email <<", " << student.year << ", " << student.major << endl;
return output;
}
このクラスのヘッダー ファイル:
#include <iostream>
using namespace std;
class Student
{
public:
//Default constructor
Student();
//Set the student information
Student setStudent(string[], int);
//Retrieve the Student M_Number
int getM_Number();
friend ostream& operator << (ostream& output, const Student& student);
private:
//Student's name, M_Number, Email Address, Year in School and Major
string name;
int m_Number;
string email;
string year;
string major;
};
誰かが私にこの問題を引き起こしている理由を理解するのを手伝ってくれるなら、本当に感謝しています。