Plusieurs choix par défaut
Supprimer le constructeur par défaut d'une classe est une bonne idée quand il y a plusieurs choix pour la valeur par défaut ou non initialisée état. Par exemple, supposons que j'ai une classe,
template<typename F>
class Polynomial;
ce qui représente un polynôme sur un champ, F
. Dans ce cas, il y a beaucoup de choix pour une valeur par défaut de la fonction polynomiale. L'un pourrait être l'identité pour les polynômes sous plus, c'est à dire zéro, mais nous avons pu également multiplicatif de l'identité, de l'unité. Il dépend de la façon dont l'utilisateur a raison à propos de la classe et comment il est utilisé.
Pas de choix par défaut
L'autre est notamment le cas lorsque, au lieu d'avoir plusieurs états par défaut qui pourrait faire sens, nous n'en avons aucun. Par exemple, supposons que nous avons une classe représentant un collecteur ou d'une surface.
Alors qu'est - Manifold()
? C'est un espace vide, avec rien, pas de la surface, pas de notion de distance ou de métrique. Mais alors, il n'est pas logique de penser que c'est un collecteur, mais plutôt peut-être quelque chose de plus général, comme un espace topologique.
Donc, dans ce cas, j'opterais pour supprimer le constructeur par défaut ainsi.