1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    février 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : février 2013
    Messages : 81
    Points : 24
    Points
    24

    Par défaut Syntaxe incompréhensible en C++

    bonjour,

    Voici un extrait de programme en C++ dont je ne comprends pas la syntaxe de la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nomClass : : nomClass() : nom2(arg1,arg2,arg3)
    {
     
     
    }
    Y a-t-il un constructeur?
    Que représente:
    -nomClass ? une classe ?
    -nomClass : : nomClass() un constructeur?
    - nomClass() : nom2(arg1,arg2,arg3) quesako?

    merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2004
    Messages
    10 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : octobre 2004
    Messages : 10 821
    Points : 24 787
    Points
    24 787

    Par défaut

    Salut,
    C'est le constructeur, dont on donne l'implémentation en dehors de la classe dont il permet de construire une instance.

    • nomClass:: utilise ce que l'on appelle le "nom pleinement qualifié" : Pour accéder à "tout ce qui fait partie" d'une classe donnée, il faut savoir... à quelle classe cela appartient (hé oui ). la syntaxe <le nom d'une classe>:: permet de dire "ce qui suit appartient à la classe indiquée"
    • nomClass() représente le nom d'une fonction. Dans le cas présent, c'est une fonction "un peu particulière", parce qu'elle ne renvoie absolument rien, et qu'elle porte le même nom que la classe en question. C'est ce que l'on appelle le "constructeur" (par défaut, dans le cas présent, vu qu'elle ne prend aucun paramètre)
    • <nom de la classe>(/*...*/): les deux points :permettent de définir ce que l'on appelle une liste d'initialisation pour le constructeur: plutôt que de laisser créer une donnée membre grâce au constructeur par défaut pour le type de la donnée en question, on fait directement appel au constructeur qui lui donnera les valeurs adéquates
    • nom2(arg1,arg2,arg3) appelle le constructeur de la donnée appelée nom2 en lui transmettant les valeurs représentées respectivement par arg1, arg2 et arg3 (*)
    • { /* ... */}: le corps du constructeur en lui-même. Le constructeur agit exactement comme n'importe quelle fonciton. S'il reste "quelque chose à faire" après avoir créé les données membres au travers de leur constructeur (par exemple : des "vérifications d'usage" pour s'assurer que les données sont cohérentes), nous pourrons les faire à cet endroit

    (*) A priori, les données que l'on va transmettre au constructeur d'une données membres seront "directement issues" des paramètres transmis au constructeur de la classe (sauf ca particuliers). Cela me laisse à penser que la formr du constructeur serait plutot proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nomClass : : nomClass(Type1 arg1, Type2 arg2, Type3 arg3) : nom2(arg1,arg2,arg3)
    {
     
     
    }
    à moins -- bien sur -- que arg1, arg2 et arg3 ne correspondent à des valeurs littérales
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Problème de syntaxe incompréhensible
    Par milsou dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2010, 16h02
  2. erreur de syntaxe incompréhensible sur un IIF en sql
    Par gaihdriah dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 21/01/2009, 12h08
  3. [javascript] erreur de syntaxe incompréhensible
    Par jijaLaClasse dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2007, 11h44
  4. [SQL] Erreur de syntaxe incompréhensible
    Par Equinoxe5 dans le forum PHP & SGBD
    Réponses: 5
    Dernier message: 26/10/2007, 15h30
  5. boucles while/for : syntaxe incompréhensible
    Par Loceka dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/12/2006, 21h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo