Point-virgule après la déclaration de la classe des accolades

Dans des classes C++, pourquoi le point-virgule après l'accolade de fermeture? Je fais régulièrement de l'oublier et d'obtenir des erreurs de compilation, et donc perte de temps. Semble un peu superflue pour moi, ce qui est peu probable d'être le cas. Les gens vraiment faire des choses comme:

class MyClass
{
.
.
.
} MyInstance;

Je l'obtenir à partir d'une C compatibilité du point de vue de leurs structures et les énumérations, mais étant donné que les classes ne font pas partie du langage C, je suppose que c'est principalement le garder une cohérence entre la déclaration similaire constructions.

Ce que je cherchais était plus liée à la conception des explications plutôt que d'être en mesure de changer quoi que ce soit, bien qu'un bon code de l'achèvement de l'IDE peut recouvrir ce avant la compilation.

  • Cela peut vous aider: cpptalk.net/...
  • merci pour le lien. À partir d'un point de vue historique, il est de bon sens, et si le C++ permet à tous les C de grammaire, et des classes C++ sont synonyme de structures, nous nous retrouvons avec le nécessaire point-virgule à la fin de la classe.
  • ouais grave question. Je suis bien conscient que j'ai à vivre avec elle, mais je curieux au sujet de la justification de la conception et de la mise en œuvre.
  • Ok, mais vous devrait peut-être possible de modifier une question à vous voulais la conception à la justification. Comme il est, il encourage les gens à se poser des questions comme "pourquoi l'accolade"? 🙂 Vous pouvez être intéressé par la lecture de Stroustrup Design & Évolution de C++, bien qu'il couvre plus des choses plus importantes que des points-virgules à la fin des classes.
  • juste assez, et il était limite quant à savoir si ou de ne pas wiki il. La question a été posée après avoir quitté un point-virgule dans un régulièrement utilisé en-tête dans une grande construction. Il m'a coûté une demi-heure, d'où la visite de la SORTE. Question édités par votre suggestion.
  • Les Classes sont essentiellement les structures, la seule différence est leur niveau par défaut de l'accès (privé vs public). Donc, il n'y a pas de différence à l'égard des points-virgules. Je suppose que c'est pourquoi j'ai été tellement incrédule. 🙂
  • Je recommande d'écrire toutes les classes en écrivant d'abord le "squelette": classe nom de la Classe {\n a usage privé:\n public:\n }; et ensuite les remplir dans les détails. Ou, comme vous l'avez dit, l'utilisation d'un IDE qui va le faire pour vous

InformationsquelleAutor SmacL | 2009-04-24