Заранее благодарим за любую помощь! Эта программа является программой регистрации студентов.C++ ostream: оператор не соответствует << и ожидаемый инициализатор до '&' token
Данные взяты из файла и результаты не найдены. Тогда общей идеей является изучение C++, перегрузка метода - включая операторы и fstream
. Я отправлю код, на который указывает компилятор, но, пожалуйста, дайте мне знать, хотите ли вы увидеть другой код.
Когда я иду, чтобы построить ошибку компилятора, указывает на мой метод файла заголовка, вне моего класса, но внутри #endif
. Смотри ниже.
std::ostream & operator << (std::ostream & os, const Registration & R);
Реализация этого файла, как например:
std::ostream &operator <<(std::ostream & os, const Registration & R )
{ os << "Student ID: " << R.GetStudentId() << "\n"
<< "Semester: " << R.GetSemester() << "\n \n";
for(unsigned i = 0; i < R.GetCount(); i++)
{
os << "\tUnit Name : " << R.GetName(i) << "\n"
<< "\tUnit Id : " << R.GetId(i) << "\n"
<< "\tCredit Points : " << R.GetCredits(i) << "\n"
<< "\tStudent Mark : " << R.GetResult(i) << "\n"
<< "\tDate : " << R.GetDay(i) << " " << R.GetMonth(i) << " " << R.GetYear(i) << "\n\n";
}
os << "Total Credits :" << R.GetCredits() << "\n"
<< "Number of Units : " << R.GetCount() << "\n"
<< "Average Mark : " << R.GetAverage();
return os;
}
И главный()
int main()
{
ifstream infile("rinput.txt");
if(!infile) return -1;
Registration R;
infile >> R;
ofstream ofile("routput.txt");
ofile << R; // Error Here RE- no match for 'operator<<'
cout << "\nComputation completed. Check output file. \n";
return 0;
}
Еще раз спасибо за любые и все помощь, надеюсь, что это не ошибка новобранец ... поздно, когда я.
Редактировать: У меня есть «using namespace std» & #include во всех файлах заголовков.
Вы забыли '#include'. –
@Kerrek - Имейте это во всех моих заголовочных файлах :) –
@MasterSketchiggle Пожалуйста, разместите [MCVE] (http://stackoverflow.com/help/mcve), который позволяет всем воспроизводить ваши ошибки. –