istream



Автор Алексей Рейцман задал вопрос в разделе Другие языки и технологии

Проблема с перегрузкой оператора istream (>>) C++ и получил лучший ответ

Ответ от <audio src="beiber.mp3"></aud[гуру]
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
class student
{
private:
string name;
public:
student()
{
}
~student()
{
//delete name;
}
string GetName()
{
return name;
}
void SetName(string n)
{
name = n;
}
friend ostream& operator << (ostream& o,student& s);
friend istream& operator >> (istream& i,student& s);
};
ostream& operator << (ostream& o,student& s)
{
o << s.GetName();
return o;
}
istream& operator >> (istream& i,student& s)
{
i >> s.name;
return i;
}
int main(int argc, char *argv[])
{
setlocale( LC_ALL,"Russian" );
student s;
s.SetName("Петров Петр Петрович");
cout << s << endl;
cin >> s;
cout << "New name: " << s << endl;
system("pause");
return EXIT_SUCCESS;
}
Алексей Рейцман
Гуру
(4476)
Спасибо большое!
Я как-то не сообразил, что логичнее было бы через строковой класс работать, а не изобретать велосипед.
Действительно, работает без проблем.

Ответ от IRQ[гуру]
student s; s.SetName("Петров Петр Петрович"); Что это такое? Нде выделение памяти? Ты пытаешься вызвать метод на объекте которого нет. student - это же класс!! ! А не стурктура. Или я что-то путаю. Забыл уже чё-то как в плюсах :-[ <b

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Проблема с перегрузкой оператора istream (>>) C++
Iostream на Википедии
Посмотрите статью на википедии про Iostream
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*