Team.h :
#ifndef TEAM_H_
#define TEAM_H_
#include <iostream>
#include <string>
using namespace std;
class Team
{
friend ostream& operator << (ostream&, const Team& );
friend istream& operator >> (istream&, const Team& );
public:
string TeamName;
int win;
int lose;
int draw;
int score;
Team ();
};
#endif /*TEAM_H_*/
Реализация :
Team.cpp
#include "Team.h"
using namespace std;
Team::Team()
{
score=win*3+draw;
}
ostream& operator << (ostream& outs, const Team& ob)
{
outs<< ob.TeamName;
return outs;
}
istream& operator >> (istream& ins, const Team& ob)
{
cout <<"Input team name : ";
ins >> ob.TeamName; // тут ошибка.Почему?разобрался.нет,не разобрался..не понимаю почему.
//no match for 'operator>>' in 'std::cin >> ob->Team::TeamName'
return ins;
}
Скажу сразу - до сих пор до конца не разобрался для чего нужны директивы #ifndef. Вроде бы они отменяют повторную компиляцию кода до #endif.
Сообщение отредактировано: Andrewshkovskii -