前置声明,我说不上来哪里有问题

#ifndef HEADER_VECTOR #define HEADER_VECTOR class Matrix; class Vector{ int *v; int sz; public: void remove(){delete[] v;} void set(int); int& operator[](int); int size(){return sz;} void display(); friend Vector multiply(const Matrix &m,const Vector &v); }; #endif
#ifndef HEADER_MATRIX #define HEADER_MATRIX class Vector; class Matrix{ int *m; int szl,szr; public: void set(int,int); void remove(){delete[] m;} int sizel{return szl;} int sizer{return szr;} int&elem(int ,int ); friend Vector multiply(const Matrix &m,const Vector & v); }; #endif