Glareone
12-06-2010, 05:49
Доброго времени суток.
Имеется собственный класс с полем char *str. Необходимо для ввода в него перегрузить >> , чтобы из потока читалось до пробела или до комбинации символов \ или \" .
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
class String
{
int len;
char *str;
public:
String(const char *s=""); //конструктор-преобразователь
const char *c_str() const { return str; } //метод
~String();//деструктор
friend istream &operator>>(istream &, String&);
friend ostream &operator<<(ostream &,const String&);
};
//Предложили сделать вот так, но или я туп, или так не получится :
istream &operator>>(istream &s, String &p)
{ char c;
return s >> c >> p.str >> c;
}
Имеется собственный класс с полем char *str. Необходимо для ввода в него перегрузить >> , чтобы из потока читалось до пробела или до комбинации символов \ или \" .
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
class String
{
int len;
char *str;
public:
String(const char *s=""); //конструктор-преобразователь
const char *c_str() const { return str; } //метод
~String();//деструктор
friend istream &operator>>(istream &, String&);
friend ostream &operator<<(ostream &,const String&);
};
//Предложили сделать вот так, но или я туп, или так не получится :
istream &operator>>(istream &s, String &p)
{ char c;
return s >> c >> p.str >> c;
}