A stretto giro, non ti servirebbe un costruttore di copia visto che stai usando una std::list che già lo implementa di suo (e il compilatore sa quando richiamarlo in automatico), questa istruzione è legale solo nella initialization list:
Se vuoi tenerla nel corpo del costruttore di copia devi fare.codice:Casa::Casa(const Casa& casa) : lista_coordinate(casa.lista_coordinate) { }
codice:Casa::Casa(const Casa& casa) { std::copy( casa.lista_coordinate.begin(), casa.lista_coordinate.end(), std::back_inserter(lista_coordinate) ); }