RE: Multiple inheritance and I/O

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Thu, 24 Jan 2008 16:16:57 -0600


Hi Clark,

You still need to generate the dictionary via rootcint. However to disable the I/O, just set the class version to 0:

        ClassDef(MyClass,0);

(ClassDef is required for classes inheriting from TObject).

For classes not inheriting from TObject, you can also use the syntax:

        #pragma link C++ class NonTObject-;
(note the trailing minus sign).

Cheers,
Philippe.

-----Original Message-----
From: owner-roottalk_at_root.cern.ch [mailto:owner-roottalk_at_root.cern.ch] On Behalf Of Clark McGrew
Sent: Thursday, January 24, 2008 12:19 PM To: RootTalk mailing list
Subject: [ROOT] Multiple inheritance and I/O

Hello All,

I'm working with some classes that inherit from TObject, and inherit from several "mix-in" base classes. What is the proper way tell ROOT to ignore a base class (so it doesn't take part in I/O)? In fact, I've found that I get the right behavior by creating CINT definitions for the mix-in classes to exclude I/O. Looking at the ROOT source code, and verifying the output files shows that ROOT is correctly reading and writing the classes, but I get a warning from TClass::BuildRealData about the missing ShowMembers method (it is after all missing). Can the warning be disabled?

Thanks,
Clark

-- 
Clark McGrew <clark.mcgrew_at_sunysb.edu>
Received on Thu Jan 24 2008 - 23:17:07 CET

This archive was generated by hypermail 2.2.0 : Fri Jan 25 2008 - 05:50:02 CET