IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

probléme lors de définition d'une classe


Sujet :

C++

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut probléme lors de définition d'une classe
    bonjour,
    j'ai à écrire une classe UneCitaion contenant deux champs sonAuteur et sonContenu.ma classe doit aussi contenir un constructeur et une methode presenteToi(),
    je suis arrivé à écrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include<iostream.h>
    #include<string.h>
     
    class UneCitation
    {
    	char sonAuteur[20];
    	char sonContenu[20];
       public:
    	   void presenteToi();
    	   UneCitation(char*chaine,char*machaine);
     
     
    };
     
    UneCitation::UneCitation( "auteur", "contenu")
    {
    	strcpy("sonAuteur","auteur");
    	strcpy("sonContenu","contenu");
    };
    void UneCitation::presenteToi()
    {
      cout<<sonAuteur<<"\n" ;
      cout<<sonContenu<<"\n";
    };
    mais lors de l'execution une erreur m'est indiqué par le compilateur:
    <Unknown>' : function-style initializer appears to be a function definition
    Error executing cl.exe.
    j'attend vos commentaires,
    Merci!!

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 636
    Par défaut
    Salut,

    D'abord, la réponse...

    Tu verras, c'est tout bête: supprime le ; qui se trouve après l'accolade fermante de presenteToi, et tout rentrera dans l'ordre

    Maintenant, les conseils:

    1- N'oublie pas que lors de la définition d'une méthode, il faut quand même que la signature soit correcte: ainsi, la définition de ton constructeur ne serait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UneCitation::UneCitation( "auteur", "contenu")
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UneCitation::UneCitation(char* chaine, char *machaine)
    pour respecter ce que tu as mis dans la déclaration de la fonction.

    2- Si tu veux fournir une valeur par défaut, cela se fait dans la déclaration de la fonction, et non dans sa définition.

    3- évite autant que tu peux les chaines de caractères "C style", et préfères leur la classe std::string qui est bien plus sécurisante à utiliser.

    Tu pourra, entre autre, utiliser l'opérateur = et cela te permettra d'éviter d'avoir à "limiter" le nombre de caractères utile pour l'auteur et pour la citation.

    Si tu coures déjà le risque de voir des auteurs dont le nom fait plus de 20 caractères, le risque devient énorme que la citation soit bien plus importante: regarde, tout simplement, la citation de ma signature: on est bien au delà des 20 caractères

    4 -Enfin, penses au paradigme RAII: Quitte à fournir des informations au constructeurs, pourquoi ne pas envisager que la "récupération" de ces informations se fasse "ailleurs" et de tout de suite envoyer les bonnes informations au constructeur
    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

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Et puis celui après l'implémentation du constructeur aussi.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/11/2010, 00h10
  2. problème lors de création d'une vue
    Par gapse dans le forum Oracle
    Réponses: 7
    Dernier message: 26/07/2006, 12h59
  3. Warning lors la creation d'une classe
    Par addack dans le forum Langage
    Réponses: 11
    Dernier message: 02/11/2005, 12h06
  4. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10
  5. [TForm] Problème lors du déplacement d'une fenêtre sans barre de titre
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/10/2004, 17h10

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