Where exactly are you experiencing an issue? If it's just with getting the compiler to process it, you could use a forward declaration of Vector above Row - although I think you'll then have to return a pointer/reference instead of a fully-fledged object. Alternatively, declare them as functions outside of (and below) the class definitions and you can have them both return objects.
On another note - why have you declared both transpose() methods to be static? If they both act on a single instance of their own class, it would make sense to make them both instance methods... no?