Verifique se há “auto-atribuição” no construtor de cópias?

oje, na universidade, fui recomendado por um professor que verificaria(this != &copy) no construtor de cópia, da mesma forma que você deve fazer ao sobrecarregaroperator=. No entanto, questionei isso porque não consigo pensar em nenhuma situação em quethis seria sempre igual ao argumento ao construir um objet

Ele admitiu que fiz um bom argumento. Portanto, minha pergunta é: faz sentido executar essa verificação ou é impossível que isso estrague tud

Edita: Eu acho que estava certo, mas vou deixar isso em aberto por um tempo. Talvez alguém esteja inventando alguma mágica maluca de c ++ enigmátic

Edit2: Test a(a) compila no MinGW, mas não no MSVS10.Test a = a compila em ambos, então suponho que o gcc se comportará de maneira semelhante. Infelizmente, o VS faznã mostre uma mensagem de depuração com "Variável usada sem ser inicializada". No entanto, mostra corretamente esta mensagem paraint i = i. Isso poderia realmente ser considerado uma falha na linguagem c ++?

class Test
{
   Test(const Test &copy)
   {
      if (this != &copy) // <-- this line: yay or nay?
      {
      }
   }
   Test &operator=(const Test &rhd)
   {
      if (this != &rhd) // <-- in this case, it makes sense
      {
      }
   }
};

questionAnswers(9)

yourAnswerToTheQuestion