Dear ROOT,
I have strange problem, I have class Base, Array A, B and C, four of them inherits from Base class Array contain objects of class C:
class Array : public Base{
protected:
Int_t fSize;
Base **fBaseArray;//[fSize]
}
Class Array if filled by class Task it’s look like
Task::Add(Base *b){
array->Add(b); // Array->fBaseArray[fSize++]=b;
}
Code works on
a) single machine (all cases)
b) PROOF (if I add to class Array A or B)
If add class C my “Array” then code crash, only difference is that C source files are in different directory (Task include Array.h witch contains definitions of Array A B). Crash i caused because fBaseArray[i] is NULL (event if fBaseArray[0]=A and fBaseArray[1] = C both of them are NULL if one object is C class)
When I put code of C class into Array.h code works .
Why? because Array inherits from Base and contain Base objects? or because CINT limitation (C.h is in complete different directory) or because C is in different library (all of them are loaded).
For know only solution is put code C into Array.h but I would like to put them wherever I want.