Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème POO QtCreator

Sujet résolu
    13 octobre 2019 à 2:27:15

    Bonjour,

    J'ai dans l'idée de crée un jeu de cartes en POO sur QtCreator, j'ai déjà suivis pas mal de cours sur la programation orienté objet et j'ai déja pas mal de connaissance sur tout ce qui est constructeur et accesseur mais je dois dire que la je sèche. J'ai trois class, le main, la fenetre et le paquet le soucis c'est qu'il me dit que j'ai une erreur au niveau du paquet mais je vois absolument pas ou et je suis dessus depuis cet après midi quelqu'un saurait éclairer ma lanterne xP 

    • Partager sur Facebook
    • Partager sur Twitter
      13 octobre 2019 à 4:18:03

      C'est bien loin de son qu'on pourrait nommer de OO ou un code de bonne qualité. Je ne sais pas quel cours tu utilises, mais tu devrais le changer.

      Pour poster du code, il y a le bouton </>

      Ce qui ne va pas:

      • Utilisation de window.h spécifique Windows et inutile
      • typedef struct cartes_s { ... } cartes, reliquat du C pour struct cartes { ... }; using carte_s = carte;.
      • carte_s::image qui ne devrait pas être là mais dans la partie graphique qui trouve l'image via le nom
      • PaquetDeCarte qui est un Widget. Il devrait y avoir le paquet d'un côté et le widget de l'autre.
      • tout est public et la moitié des variables ne sont pas utilisées
      • usage de tableau C à la place de std::array
      • initialisationPaquet est le rôle du constructeur
      • copiePaquet ne devrait pas exister
      • melangerPaquet utilise rand(), une vieillerie du C. En plus il existe std::shuffle qui fait bien mieux le boulot que cette boucle
      • image.toStdString().c_str() O_o. Pourquoi cette cochonnerie ?
      • utilisation de SIGNAL et SLOT plutôt que la nouvelle syntaxe des signaux.

      Franchement, le paquet devrait être un bête tableau. Il fait tellement rien qu'une fonction qui retourne un std::array mélangé ferrait l'affaire.

      Pour l'erreur de symbole: tu oublies de compiler certain .cpp

      • Partager sur Facebook
      • Partager sur Twitter
        13 octobre 2019 à 5:02:06

        L'erreur "undefined reference for vtable" avec Qt arrive souvent quand certains fichiers ne sont pas correctement recompilé. En général, un simple "run qmake" et puis un "rebuild" est suffisant pour fixer le problème.

        En plus des remarque de jo_link_noir :

        - il manque Q_OBJECT dans la classe Window

        - rang[i] va crash. Et plus généralement, tu ne fais aucune vérification de l'accès à tes tableaux.

        - qDebug ne s'utilise pas comme ca

        - certaines variables membres sont inutiles

        - manque de consistance (CamelCase vs snake_case, tableau C vs QVector)

        - la variable rang devrait être constexpr

        - inutile de déclarer "aléatoire" en dehors de la boucle

        - n'utilises pas setGeometry mais les layouts

        • Partager sur Facebook
        • Partager sur Twitter

        Problème POO QtCreator

        × 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.
        • Editeur
        • Markdown