Помощь - Поиск - Пользователи - Календарь
Полная версия: Не могу разобраться с ошибками
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Andrewshkovskii
Есть такой вот класс :
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.
volvo
Цитата
ins >> ob.TeamName; // тут ошибка.Почему?
Ты меня извини, но передавать в оператор константную ссылку, и в то же время пытаться изменить объект - как-то не вяжется одно с другим...

Вот так:
istream& operator >> (istream& ins, Team& ob)
{
cout <<"Input team name : ";
ins >> ob.TeamName;
return ins;
}
Andrewshkovskii
хвщ..вот это даsmile.gif))извините..Спасибоsmile.gif на автомате не задумываясь написал..
хм...но после этого исправления появилось ещё "море" ошибок.

#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;
}
volvo
Цитата
после этого исправления появилось ещё "море" ошибок.
blink.gif GCC 3.4.5 + CodeBlocks - полет нормальный, после удаления слова const (и при определении, и при реализации) все компилируется без ошибок...

Цитата
тут,говорит о мульти объявлении.
Мультиобъявлении ЧЕГО?

Цитата
и тут.что не так я написал в заголовочном файле?
Я тебе уже написал выше, что не так... Второй раз я говорить не буду...
Andrewshkovskii
да это я потом уже разобрался,но всеравно спасибо.Я очень невнимателен - хз как с этим боротьсяsmile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.