J'ai eu une discussion intéressante avec des collègues ce midi: pour ou contre la fonction clone(). Elle n'est certes pas d'une importance capitale, mais soulève quelques problématiques intéressantes je trouve.

Moi je suis contre car:
0. Bêtement et concrètement, je n'en ai jamais eu besoin.
1. Il vaut mieux implémenter un constructeur par copie.
2. On ne peut pas faire du NVI si on a du clone() sur des classes destinées à être héritées.
3. clone() peut être utile, justement, dans le but d'utiliser le polymorphisme. Mais dans ce cas, ne vaut-il pas mieux utiliser une abstract factory?

Qu'en pensez-vous?

Cordialement,
r0d.