Wei Xie wrote: > > Dear ROOTers' > > I got the following warning messages. Could you give me > some explaination ? > > ************* > class DAQ in DAQ.h line 9 original base of virtual func > class Moniter in Moniter.h line 14 original base of virtual func > *** Datamember DAQ::OnlineDataFile: pointer to fundamental type (need > manual intervention) > ********* > (Note: FILE *OnlineDataFile) > > Sincerely yours > Xie I have already several times to the same question on this list. Here is a posting to roottalk (Wed 27 May 98). I take this opportunity to mention again that you can search the roottalk digest from the root home page. Rene Brun When rootcint encounters a data member that is a pointer to a fundamental type, it prints a Warning message calling for manual intervention, because rootcint has no way to know the length of the array corresponding to the pointer. This is explained in http://root.cern.ch/root/HowtoWrite.html see also the course 3 of Root at ftp://root.cern.ch/root/course3.ps.gz In your example, you have two possibilities: A- Recommended Replace you data members Text_t * by TString objects and Streamer will be automatic. Text_t *l_DocumentClass; // Latex cmd documentclass Text_t *l_UsePackage; // Latex cmd usepackages by TString l_DocumentClass; // Latex cmd documentclass TString l_UsePackage; // Latex cmd usepackages B- using your class header unmodified You must modify the Streamer function adding statements like: in Read part Int_t l; R__b >> l; // read string length R__b.ReadFastArray(l_DocumentClass,l); //read array in write part Int_t l = strlen(l_DocumentClass) +1; R__b.WriteFastArray(l_DocumentClass,l); In the second case, you should copy the Streamer function in the implementation of your class and modify your LinkDef.h file by adding the symbol "-" in front of the class name to prevent rootcint to generate the Streamer function itself. Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:30 MET