Both versions of the Matrix operator[](index) method should: The method-template for the read version has this prototype:
   const Vec<Item>& Matrix::operator[](unsigned index) const;

The method-template for the write version has this prototype:

   Vec<Item>& Matrix::operator[](unsigned index);
Hopefully that is enough of a hint!