Je code sous Visual Studio et je run mon code directement dans le terminal du logiciel en cliquant sur la flèche en haut à droite de ma fenêtre. Je travaille pour des examens et j'ai des problèmes de compilation de code que mes camarades n'ont pas (je suis sur mac, ils sont sur PC, ça joue peut être).
Vous trouverez ci dessous l'erreur qui s'affiche. Elle est récurrente à chaque fois que je veux définir une variable en utilisant les {}.
Bonsoir, Évitez les titres de sujet avec "problème" si vous postez on se doute que vous avez un problème et cela n'apporte aucune information quant au contenu du sujet.
Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
On voit que tu as un constructeur par défaut, et un constructeur avec 2 paramètres.
Donc il faut construire comme cela :
Point res(0,0);
Si tu veux construire avec une initializer_list (donc des accolades avec des paramètres), il te faudra un constructeur avec une std::initializer_list en paramètre.
Ton point n'a pas l'air d'avoir le moindre invariant. Vire tous les constructeur de ta classe pour en faire un vrai agrégat. Le C++ prendra ensuite le relai pour les générer automatiquement de la bonne façon.
Et si tu veux vraiment un constructeur par défaut qui met à zéro (*), alors donne une valeur pour les données membre directement dans la définition de la classe
struct Point {
double x = 0.;
double y = 0.;
};
(*) Personnellement, je préfère aujourd'hui éviter pour ce genre de classe et moi même explicitement mettre à zéro quand je le veux en construisant avec des accolades vides: `Point origin{};` (x et y seront à 0 sans avoir besoin de l'"astuce" précédente)
PS: il ne faut faire faire de using namespace dans un fichier d'en-tête (i.e. .h, .hpp...). https://cpp.developpez.com/faq/cpp/?page=Les-namespaces#Quand-utiliser-ne-pas-utiliser-using-namespace Ailleurs c'est critiquables et mes amis ne manqueront pas de le faire pour moi. Mais dans les fichiers d'en-tête ce sont une source d'ennuis interminable, et toutes les règles qualité le proscrivent en industrie, et des profs pas trop à la ramasse le sanctionneront avec des points en moins.
J'aimerai pouvoir utiliser ta première suggestion afin de faire au plus simple (avec les parenthèses) mais ça ne marche toujours pas, j'ai une nouvelle erreur qui s'affiche et je n'arrive toujours pas à la comprendre.
J'aimerai pouvoir utiliser ta première suggestion afin de faire au plus simple (avec les parenthèses) mais ça ne marche toujours pas, j'ai une nouvelle erreur qui s'affiche et je n'arrive toujours pas à la comprendre.
Comme ton compilateur ne reconnait pas la syntaxe, je pense qu'il n'est pas configuré en C++11 ou supérieur (je ne suis pas sur Mac, ni sous Visual studio, je ne sais pas t'en dire plus)
étrange le compilateur voir des accolades au lieu des parenthèses tu as bien réenregistré ton fichier (si ce n'est pas automatique)
Problème de compilation fichier.
× 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.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html