[C++] créer un objet dans l'interrupteur


Answers

Je suggère d'éviter les interrupteurs à cause de cela et d'autres problèmes. Vous pouvez autoriser les définitions de variables par des accolades supplémentaires, mais cela semble désordonné et entraîne deux niveaux d'indentation. D'autres problèmes sont que vous ne pouvez utiliser que des valeurs entières / enum pour les cas, que l'instruction break ne peut pas être utilisée pour rompre avec une boucle en dehors du commutateur. Oublier de casser est aussi une erreur de programmation très courante qui ne peut pas être détectée par le compilateur (car il s'agit toujours d'un code valide) et qui conduit à des bogues difficiles à corriger.

Personnellement, je n'utilise que des switch-cases avec des valeurs enum, et même jamais avec une étiquette par défaut. Cela a l'avantage de m'obtenir un avertissement de compilation (de GCC) si toutes les valeurs possibles de l'énumération ne sont pas traitées.

Il n'y a rien de mal avec if-elses.

Question

j'utilise visual studi 2008. (c ++)

Dans mon cas, j'ai voulu créer un objet, mais je ne travaille pas.

est-ce exact, que je ne peux pas créer un objet dans un boîtier de commutateur?

si c'est vrai, quelle est la meilleure façon de contourner le problème,

une nouvelle méthode qui crée cet objet?

éditez le code:

switch (causwahl){
case '1':
cAccount *oAccount = new cAccount (ID);

case '2' ....