// P78.cpp

class Object
{

};

class DB_Operation
   : public Object   // must have a base class
{

};

template <class Owner, class Element>
class DB_Set
{
    static DB_Operation& get_cardinality_selection()
    {
        static DB_Operation x;
        return x;
    }
public:
   static DB_Operation& _cardinality_selection;

};

template <class Owner, class Element>
DB_Operation& DB_Set<Owner, Element>::_cardinality_selection = DB_Set<Owner, Element>::get_cardinality_selection();

class PP_Container_Class_Property
{

};

class PP_Component
{

};

class PP_Class
{
public:
   DB_Set<PP_Class, PP_Container_Class_Property> _employments;
   DB_Set<PP_Class, PP_Component> _components;

};

int main()
{
   PP_Class u1;

   return &u1._employments._cardinality_selection
      == &u1._components._cardinality_selection;
}


