Y a-t-il une utilisation légitime de void*en C ++? Ou cela a-t-il été introduit parce que C l'avait?
Juste pour récapituler mes pensées:
Entrée : Si nous voulons autoriser plusieurs types d'entrée, nous pouvons surcharger les fonctions et les méthodes, sinon nous pouvons définir une classe de base commune, ou un modèle (merci de l'avoir mentionné dans les réponses). Dans les deux cas, le code est plus descriptif et moins sujet aux erreurs (à condition que la classe de base soit implémentée de manière sensée).
Sortie : Je ne peux penser à aucune situation où je préférerais recevoir void*plutôt que quelque chose dérivé d'une classe de base connue.
Juste pour clarifier ce que je veux dire: je ne demande pas spécifiquement s'il y a un cas d'utilisation pour void*, mais s'il y a un cas où void*est le meilleur ou le seul choix disponible. Ce qui a été parfaitement répondu par plusieurs personnes ci-dessous.