CxxUtils::WritableArray< 0 > Node1 CxxUtils::WritableArray< 0 > + WritableArray() + operator=() - WritableArray() Node2 CxxUtils::Array< 0 > + Array() + Array() + valid() + shape() + size() + operator Arrayelt() + asint() + write_array() # Array() Node2->Node1 Node3 Arrayelt Node3->Node1 -m_elt_nc Node3->Node2 #m_elt