Ok, just realised, this should not work regardless what you do:

Square::Square(const Square &rhs){
Square(rhs.left(),rhs.up(),rhs.right(),rhs.down()) ;
}

As far as I think to know, you cannot call a constructor within a constructor in C++. This would be JAVA