Preferrable, but not necessary. const reference would be better, and also make clone() a const method. However, everything should work as stated.

Also, you may want to invoke the copy constructor instead of the regular constructor, as in

...
return new A1(*this);
...

etc.

Jeff