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 :

question un peu bête


Sujet :

C++

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut question un peu bête
    Bonjour à tous,

    avant tout, je vous demande de bien vouloir pardonner mon ingénuité si ma question est vraiment stupide.

    Voilà, au plus je progresse en c++, au plus mon code ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fonctionA(unObjet.fonctionB(), unAutreObjet->fonctionC())->UneAutreFonction( ... etc
    Ce que je veux dire, c'est que je me retrouve avec des imbrications d'appels de fonctions et des suites du style: l'appel de resultats d'une fonction appelle une autre fonction, et ainsi de suite. Et très peu de variables temporaires, de code de contrôle (if, else, switch...), d'affectations, etc...

    Du coup je me retrouve souvent avec des fonctions qui ne contiennent qu'une ligne, laquelle contient plusieurs appels à d'autres fonctions.

    Ma question est: est-ce bon signe? Je veux dire, est-ce que, à première vue, je vais dans le bon sens?

    Merci pour vos commentaires (même si ma question est stupide, dites-le moi )

    r0d.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Ça m'est déjà arrivé, d'avoir du code qui ressemble au tien. Maintenant, est-ce que les fonctions que tu appelles sont des simples accesseurs, ou des modificateurs ?

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Bah ça dépends, il y a un peu de tout.
    C'est tout de même plus souvent des accesseurs.

  4. #4
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    il y a des cas ou il est dangereux de ne pas tester tes pointeurs par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         unAutreObjet->fonctionC())->UneAutreFonction(
    si unAutreObjet->fonctionC() retourne NULL ou un pointeur invalid tu vas avoir un beau plantage avec le code suivant ->UneAutreFonction().

    sinon en soit meme ca n'empechera pas ton code de fonctionner, mais si il y a un bug a un moment donner tu vas avoir beaucoup de misere a debugger.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut
    A première vue, juste à premier vue, je dirai que vous n'allez pas dans le bon sens.
    Au deuxième vue, le code sera plus rapide puisque vous ne creez pas d'objets temporaires...
    Le hic... valeurs temporaires non testées

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par xxiemeciel
    Salut,

    il y a des cas ou il est dangereux de ne pas tester tes pointeurs par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         unAutreObjet->fonctionC())->UneAutreFonction(
    si unAutreObjet->fonctionC() retourne NULL ou un pointeur invalid tu vas avoir un beau plantage avec le code suivant ->UneAutreFonction().
    Oui m'enfin justement, dans le cas d'un accesseur, je vois pas très bien comment la fonction pourrait retourner NULL...

  7. #7
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Tournevyks
    Oui m'enfin justement, dans le cas d'un accesseur, je vois pas très bien comment la fonction pourrait retourner NULL...
    Si l'objet est mal initialisé, par exemple. Je travaille beaucoup sur les interfaces graphique, et c'est vrai que typiquement, dans ce domaine, il faut faire très attention aux pointeurs.

  8. #8
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Citation Envoyé par Luther13
    Au deuxième vue, le code sera plus rapide puisque vous ne creez pas d'objets temporaires...
    ???
    Si ses accesseurs renvoient des copies, alors il aura forcément des temporaires ... non nommés. S'ils renvoient des références, alors il pourra sans difficultés mettre des alias (des "références" quoi) sur les données retournées.

    Perso j'évite les oneliner en C++. Généralement, soit je définis des données intermédiaires non modifiables. Ou alors je refactorise en définissant des fonctions intermédaires. En général, quand on n'est pas capables de donner un nom à une fonction, quelques part, c'est un peu que l'on ne sait pas ce que l'on veut faire.

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Tu sembles utiliser beaucoup de pointeurs, les références ne pourraient-elles pas les remplacer ?

  10. #10
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Ca ne vaux que ce que ca vaux, j'ai lu récemment que ce genre d'écriture réflète d'un mauvais design et qu'il faut tenter au maximum d'eviter ce genre d'appel ... je posterais le lien si le retrouve ...

  11. #11
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Argh, ça ne me rassure pas tout ce que vous me dites là
    Il faudrait peut-être que je bosse plus sérieusement l'UML...

Discussions similaires

  1. Question sûrement très bête.
    Par Istrella dans le forum Langage
    Réponses: 7
    Dernier message: 04/11/2008, 15h55
  2. Réponses: 6
    Dernier message: 17/09/2007, 16h46
  3. [ASPX & C#] Question un peu de débutant..
    Par ketthos dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/06/2007, 11h42
  4. Une question un peu bizarre
    Par krapoulos2006 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 18/12/2006, 23h16
  5. Question "pas si bête" sur le protocole SNMP
    Par arsenik7 dans le forum Développement
    Réponses: 3
    Dernier message: 02/01/2006, 11h49

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