[ROOT] abstract class object???

From: Sean Walston (walston@ampere.uoregon.edu)
Date: Wed Aug 09 2000 - 00:31:14 MEST


I get the following error message:

	root [0] .x foo.C      
	Error: abstract class object 'Foo Bar' declared FILE:foo.C LINE:9
	*** Interpreter error recovered ***

Line 9 of foo.C is:

	Foo Bar( infile, outfile );

The code is all below: foo.C loads in the macro and trys (and fails) to
create an object called Bar which is of type Foo. Foo.cxx and Foo.hxx
define an empty class in that it has no member functions other than the
constructor and destructor and simply inherits from the well established
and highly tested Rb_zbs_DataClass. The g++ compiler has no trouble
compiling this code.

My question is, what is the meaning of the above error message? It seems
reasonable to declare an object of a type with no member functions.

Thank you for your help -- Sean


__________________________________________________________________________
foo.C ====================================================================

void
foo()
{
   gROOT->LoadMacro( "Foo.cxx" ) ;                 // Same as ".L Foo.cxx"

   const char* infile  = "fubar.root";
   const char* outfile = "snafu.root";

   Foo Bar( infile, outfile );
}


__________________________________________________________________________
Foo.cxx ==================================================================

#include "Foo.hxx"

#ifdef __CINT__
#include "Rb_zbs_DataClass.cxx"
#endif

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TCanvas.h>
#include <TH1.h>
#include <TFile.h>
#include <TNtuple.h>
#include <TProfile.h>
#endif

#include <iostream>
#include <fstream>


Foo::Foo( const char* infile, const char* outfile )  // Object Constructor
   : Rb_zbs_DataClass( infile, outfile )
{}


Foo::~Foo()                                          // Object Destructor
{}


// Local variables:
// compile-command: "g++ `root-config --cflags` -Wall -c Foo.cxx"
// End:


__________________________________________________________________________
Foo.hxx ==================================================================


#ifndef FOO
#define FOO

#include "Rb_zbs_DataClass.hxx"

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <Htypes.h>
#endif

class TH1F;
class TCanvas;
class TPad;


class Foo
   : public Rb_zbs_DataClass
{
   public:

      Foo( const char* infile, const char* outfile );
      virtual ~Foo();

      
};

#endif // FOO





__________________________________________________________________________

                               Sean Walston
--------------------------------------------------------------------------
Willamette Hall, Office 317      SLD, Central Lab Annex, Office B-153
Department of Physics            Stanford Linear Accelerator Center, MS-94
University of Oregon             P.O. Box 4349
Eugene, OR 97403                 Stanford, CA 94309
walston@ampere.uoregon.edu       walston@SLAC.stanford.edu
Office:  541-346-4847            Office:  650-926-8768
Home:    541-686-9969            Mobile:  541-912-5456
__________________________________________________________________________



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:31 MET