Re: [ROOT] Problems Defining a Class

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Jun 30 2003 - 11:36:03 MEST


Hi Chris,

You have several C++ errors in Chamber.h.
You wrongly initialize your arrays. See modified file in the attachement.

Rene Brun

Chris Hayward wrote:
> 
> I am trying to define a class called Chamber. Right now it is simply all
> public variables and the constructor. However, I have been getting a lot
> of errors. I am running ROOT 3.05/05 on lxplus. I type into the command
> line:
> 
> #include "Chamber.h"
> Chamber *chamber = new Chamber();
> 
> I get errors of the following type for all the variables I define:
> Error: Incorrect assignment to site, wrong type 'char' FILE:Chamber.h
> LINE:35
> Error: Incorrect assignment to chamber_type, wrong type 'char'
> FILE:Chamber.h LINE:35
> 
> This occurs for the Int_t and Float_t variables also. I believe that I
> have defined my class as in the user guide, but it does not work. Please
> tell me what I should do. The interface and implementation files are
> below.
> 
> Thanks,
> Chris
> 
> Chamber.h
> 
> #include <iostream.h>
> #include "TObject.h"
> #include <string.h>
> 
> class Chamber : public TObject {
> 
>   public:
> 
>     char chamber_type[10];    //this info read from scan filenames
>     char site[6];
>     Int_t serial_no;
>     char section[20];       //array of 20 strings to allow for 20 scans
>     char orientation[20];
>     Int_t scan_no[20];
> 
>     Int_t ch_sag_1;      //sag of chamber, wires, and difference for
> section 1
>     Int_t wire_sag_1;
>     Int_t sag_diff_1;
> 
>     Int_t ch_sag_2;      //sag of chamber, wires, and difference for
> section 2
>     Int_t wire_sag_2;
>     Int_t sag_diff_2;
> 
>     Int_t tool[20];      //data to be read from each scan
>     Int_t side[20];
> 
>     Int_t theta_x[20];
>     Int_t S_z[20];
>     Int_t S_y_corrected[20];
>     Int_t S_y_raw[20];
>     Int_t S_y_correction[20];
>     Float_t rms[20];
> 
>     Chamber(){
>       chamber_type=site='';
>       section=orientation='';
> 
> serial_no=ch_sag_1=wire_sag_1=sag_diff_1=ch_sag_2=wire_sag_2=sag_diff_2=0;
> scan_no=tool=side=theta_x=S_z=S_y_corrected=S_y_raw=S_y_correction=0;
>       rms=0.0;
>     };
> 
>     ClassDef (Chamber, 1);
> };
> 
> Chamber.cxx
> 
> #include "Chamber.h"
> ClassImp (Chamber);

#include <iostream.h>
#include "TObject.h"
#include <string.h>

class Chamber : public TObject {

  public:

    char chamber_type[10];    //this info read from scan filenames
    char site[6];
    Int_t serial_no;
    char section[20];       //array of 20 strings to allow for 20 scans
    char orientation[20];
    Int_t scan_no[20];

    Int_t ch_sag_1;      //sag of chamber, wires, and difference for section 1
    Int_t wire_sag_1;
    Int_t sag_diff_1;

    Int_t ch_sag_2;      //sag of chamber, wires, and difference for section 2
    Int_t wire_sag_2;
    Int_t sag_diff_2;

    Int_t tool[20];      //data to be read from each scan
    Int_t side[20];

    Int_t theta_x[20];
    Int_t S_z[20];
    Int_t S_y_corrected[20];
    Int_t S_y_raw[20];
    Int_t S_y_correction[20];
    Float_t rms[20];

    Chamber(){
      chamber_type[0]=site[0]='';
      section[0]=orientation[0]='';

   serial_no=ch_sag_1=wire_sag_1=sag_diff_1=ch_sag_2=wire_sag_2=sag_diff_2=0;
   for (int i=0;i<20;i++) {
      scan_no[i]=tool[i]=side[i]=theta_x[i]=S_z[i]=S_y_corrected[i]=S_y_raw[i]=S_y_correction[i]=0;
      rms[i]=0.0;
   }
    };

    ClassDef (Chamber, 1);
};



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET