Buenas.
El error no esta en el contructor copia (que de hecho ni lo usas) sino en el operador +
Este deberia ser:
matrix& matrix::operator+ (const matrix& A){
y la instancia de clase C
matrix* C= new matrix(A.size);
Ya que sino estaria devolviendo un objeto local a ese metodo.
Para usar el contructor copia tendiras que hacer
matrix C(A +
;
en lugar de
matrix C = A + B;
Saludos