There's no automatic method for doing this, but generally, you can do this:
Code:
class subclass
{
private:
int x;
int y;
...
friend ostream &operator<<(ostream &os, const subclass &sub);
friend istream &operator>>(ostream &is, subclass &sub);
};
ostream &operator<<(ostream &os, const subclass &sub)
{
os << sub.x << " " << sub.y << endl;
return os;
}
istream &operator>>(istream &is, subclass &sub)
{
is >> sub.x >> sub.y;
return is;
}
class mainclass
{
private:
subclass arr[10];
std::string s;
friend ostream& operator<<(ostream &os, const mainclass &m);
friend istream& operator>>(istream &os, mainclass &m);
}
friend ostream& operator<<(ostream &os, const mainclass &m)
{
for(i = 0; i < 10; i++)
os << arr[i];
os << string;
}
friend istream& operator>>(istream &os, mainclass &m)
{
for(i = 0; i < 10; i++)
os >> arr[i];
getline(os, string);
}
So, you let each subclass output itself, making the overall serialization simpler.
--
Mats