I need to define my own operator new in order to perform memory management in a large project.
Everything is fine, until I try to compile a class which multpily inherits from several bases which inherit from the storag management class, then VC++ doesn't know which "new" to use, although it really comes down to the same one, i.e.

//--------------------------Define new for Memory Management---------------------------------------
class Base1
{
public:
void *operator new(unsigned int); // "our" new operator
void operator delete(void *, unsigned int); // "our" delete operator
};
//--------------------------Level 1 Inheritance----------------------------------------------------

class Level1A : public Base1
{
protected:
int temp1a;
};

class Level1B : public Base1
{
protected:
int temp1b;
};
class Level1C : public Base1
{
protected:
int temp1c;
};
//--------------------------Multiple Inheritance---------------------------------------------------
class Level2 : public Level1A,
public Level1B,
public Level1C
{
protected:
int morejunk;
};
//--------------------------Main-------------------------------------------------------------------
int main(int argc, char **argv)
{
Level2 *pcl2 = new Level2;
return(0);
}



Is there a simple way around this problem?

Bryan.