Merry Christmas Everyone,
I have a relatively detailed question about how pointers to objects are
saved in the output file and I tried picking apart the makecint streamer
code, but I can't exactly follow what is happening. Say I have a self
referential class hierarchy that looks something like this:
class TParent TObject {
public:
TDaughter *fDaughter1;
TDaughter *fDaughter2;
};
class TDaughter : TObject {
public:
TParent *fParent;
TDaughter *fSibling;
}
And it gets filled like this:
TParent p = new TParent;
TDaugher d1 = new TDaughter, d2 = new TDaughter;
// Insert the daughters with back pointers to the parent.
p->fDaughter1 = d1; d1->fParent = p;
p->fDaughter2 = d2; d2->fParent = p;
// Set the siblings for the daughters.
d1->fSibling = d2; d2->fSibling = d1;
At some point the parent class will be placed into a tree and saved to a
file. Are all of the self referential pointers written, and then
restored when the classes is read? Do I need to write a specialized
streamer so that only one copy of d1, and d2 are saved to the file?
In particular, before saving "(p->d2 == p->d1->fSibling)" is true.
is
Thanks,
Clark
--
Clark McGrew State University of New York, Stony Brook
(clark.mcgrew@sunysb.edu) 631-632-8299 (office)
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:13 MET