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

Qt Discussion :

Singleton et fonction connect()


Sujet :

Qt

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 374
    Points : 47
    Points
    47
    Par défaut Singleton et fonction connect()
    Bonjour à tous,

    J'utilise un singleton pour une classe et l'autre classe est la fenêtre principale du designer.

    J'ai accès au pointeur "instance" de mon singleton.

    Voici la ligne de code me donnant accès à instance :

    API.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    API_derive *API_derive::instance = NULL;
     
    static API_derive* getInstance();
    Le souci que je rencontre est sur cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(ui->bouton2, SIGNAL(clicked(bool)), instance, SLOT(acquisition()));
    Je n'ai pas accès à instance dans la classe mainwindow. Je pourrais y accéder mais le souci c'est que la classe mainwindow fait appel à son constructeur et un singleton a ses constructeurs & destructeurs en privée!

    Je vais tenter de les passer en protected dans ce cas, si vous avez d'autres pistes.

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Un peu tard mais sait on jamais.

    Déjà, je pense qu'il faut bien se poser la question si le singleton est nécessaire ou pas. Dans bien des cas une instance "normale" de la classe en composition d'une autre suffit, il est très rare d'avoir à utiliser une instance unique partout dans l'application.

    Concernant ton problème ce n'est pas clair. Le principe du singleton est d'avoir accès à l'instance au travers d'une fonction statique, pas directement accès à l'instance statique (d'où le constructeur privé). Donc ton utilisation de "instance" dans le connect n'est pas bonne. Il faut toujours passer par la fonction getInstance à la place.

Discussions similaires

  1. Probleme avec la fonction connection.Open()
    Par Hyoga95 dans le forum C#
    Réponses: 7
    Dernier message: 02/02/2010, 11h23
  2. Réponses: 2
    Dernier message: 03/01/2010, 13h39
  3. appel fonction connection
    Par cell dans le forum JDBC
    Réponses: 3
    Dernier message: 20/05/2008, 16h20
  4. Réponses: 3
    Dernier message: 22/11/2006, 21h10
  5. Configuration timeout sur fonction connect
    Par taket dans le forum Linux
    Réponses: 1
    Dernier message: 10/07/2006, 16h47

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