Salut ! Ton compilateur fera très bien le boulot Si tu veux vérifier ça pendant le runtime tu vas devoir changer de stratégie, c'est très loufoque comme idée.
======
L'application ne peut pas crasher si tu essaies de faire une action avec un objet inexistant, comme dit au dessus, c'est lors de la compilation que la vérification syntaxique a lieu. Le runtime ne te décèlera pas une erreur liée à la syntaxe, il pourra éventuellement être stoppé net, par la levé d'une exception ou à la réception d'un signal.
Euh... Non, il ne buguera (le terme francisé de "bug" c'est "bogue" => "boguera") pas, puisqu'il ne compilera pas. (définition d'un bug). Je te conseille fortement d'expérimenter ! Pour apprivoiser le comportement de ton compilateur.
Je le redis: Ton runtime ne vérifie pas les erreurs de syntaxe !
Oups... Désolé d'avoir gâché le plaisir... (J'aurais pu dire "spoilé" mais ça serait con de corriger une faute de français et d'en faire une juste après, pour qui serais-je passé ? )
=====
Oula ! Tu viens de quel langage toi ? C'est pas possible de faire ça. Si tu te documentes tu peux voir qu'une des surcharges du constructeur de std::vector permet d'initialiser un certain nombre d'éléments avec une certaine valeur:
// value_type est un alias au type contenu.
explicit std::vector( size_type n, const value_type& val );
// En grooos...
Ce constructeur peut-être utilisé ainsi:
auto my_vec { std::vector<std::string>( 10, "" ) };
// Initialise un object std::vector qui contient des
// objets std::string.
// Lors de l'initialisation de l'objet, 10 objets std::string
// seront poussés dans my_vec.
PS: Si tu veux que ton code reste visible, tu devrais adopter un style de syntaxe bien défini:
C'est un autre problème, tu ne peux pas faire ça. Tu peux à la limite utiliser un conteneur associatif, mais passer d'une chaine de caractères à du code en dur c'est pas bien.
=====
(Mon auto-correction c'était purement de l'humour décalé xD Mais je parle dans une même langue car le jargon de l'informatique c'est le bordel... On se retrouve souvent avec une mauvaise compréhension des faits et le but c'est d'être efficace et objectif)
> le terme francisé de "bug" c'est "bogue" => "boguera"
Pitié pas cette horreur qui confond insectes et châtaignes. A ce compte là, c'est une ébogueuse qui retire les bogues, pas un débogueur, soyons au moins cohérents! (je n'arrive pas à retrouver des photos de versions vintages manuelles, il y en avait une à mon grand-père qui traînait dans le jardin chez mes parents, faudra que je la photographie si elle existe toujours)
</HS>
Sinon, +1 à : - on ne peut pas utiliser une variable non déclarée - on ne peut pas déclarer une variable dont le nom est déjà utilisé pour une autre variable dans la même portée
Et surtout, je crois que la grosse confusion c'est que le nom d'une variable ne peut pas être dynamique dans un langage comme le C++ -- et beaucoup d'autres. Le nom d'une variable doit être connu au moment où le programme est écrit par l'humain entre la chaise et le clavier.
Si tu ressens le besoin d'avoir des variables dont le nom ne peut être connu qu'au dernier moment, il y a toutes les chances que ce soit d'une table associative, aka dictionnaire, dont tu aies besoin. Typiquement `std::unordered_map<std::string, std::vector<whatever>>`.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/