Il suffit denvisager une première classe exemple
avec un opérateur daffectation redéfini, puis une seconde classe autre
, contenant un membre exemple ex
. Dans ce cas, dans lancienne version, une affectation au1 = au2
recopiait en bloc les deux objets, donc recopiait en bloc les membres ex
. Dans la nouvelle version, cette affectation provoquera, entre autres, un appel de exemple::operator=(au1.ex, au2.ex)
, ce qui provoquera une copie correcte des membres ex
. Ce comportement est préférable car, dans lancienne version, il fallait penser à redéfinir lopérateur daffectation pour toutes les classes contenant des membres pour lesquels cet opérateur avait été redéfini. Ce nest plus nécessaire désormais.
Lancien comportement était plus rapide, mais source derreurs ; il posait aussi des problèmes avec lhéritage (voir chapitre 8).