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 :

Instanciation d'interface ?


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Par d�faut Instanciation d'interface ?
    Bonjour � tous,

    je viens d'�tre balancer sur un projet c++, et ce n'est pas trop mon rayon. Je suis dans une grosse phase d�apprentissage.
    Le projet est assez gros, avec plein de choses dedans, tr�s int�ressantes, mais je me heurte � une premi�re difficult� de compr�hension qui doit venir de mon manque de connaissance cpp.

    Le main de ce projet est :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Get application instance
        IApplication& app = IApplication::getInstance();
     
        // Initialize application
        if (app.init(argc, argv))
        {
            // Start application
            ret = app.start();
    Assez simple, mais pour moi
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
        IApplication& app = IApplication::getInstance();
    �a c'est assez flou. C'est bien une interface ? (interface �tant �quivalent � abstrait en c++ ?)
    Comment peut on initialiser une interface ?

    Surtout qu'apr�s
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    app.init(argc, argv)
     
    app.start()
    ces m�thodes sont bien lanc�es, mais je ne comprend pas o� le main trouve ces m�thodes.

    Un concept doit m'�chapper....

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Plus que le C++, c'est peut-�tre les Design Pattern qu'il faut un peu r�viser.
    A ma connaissance, le concept d'interface n'a pas de d�finition en C++, � part dans la version M$ du C++ (s'il la maintiennent encore et c'est pas dit).

    Ce I de "IApplication", c'est bien pour indiquer une "interface" en terme s�mantique, il n'y a pas de d�finition strict de ce qu'est une interface.
    Ici "IApplication" est une simple classe (vraisemblablement abstraite via le mot cl� "abstract") avec une simple m�thode statique getInstance.
    Ceci est l'impl�mentation habituelle de Design Pattern "Singleton" (l'un des plus d�cri� par un mauvais usage abusif).

    ces m�thodes sont bien lanc�es, mais je ne comprend pas o� le main trouve ces m�thodes.
    Dans le Singleton, l'instance (unique par l'utilisation de Design Pattern) de type IApplication (ou d'une classe fille de IApplication).

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Ne pas pouvoir instancier une interface n'interdit pas d'en utiliser, sinon elles n'auraient aucun int�r�t.
    Il suffit qu'une classe en h�rite.
    Avec un tel code, ma boule de cristal voit que la classe qui l'impl�mente enregistre son instance afin d'�tre retrouv�e via ce GetInstance. Il s'agit peut-�tre d'un singleton.
    Bien s�r ce ne sont que des th�ories sans voir le code. Mais la lecture du simple code de getInstance devrait indiquer comment �a marche en 1/2s
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  4. #4
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Par d�faut
    Merci pour ces pr�cisions. Effectivement le Singleton n'est pas un patern qui m'est famili�.

    Ce qui me perturbe c'est que juste en appelant le getInstance de la classe abstraite on puisse avoir l'objet en lui m�me.

    Ou alors vu que c'est un Singleton , lors de la compilation le programme sait d�j� ou trouver la d�finitions de la m�thode ?

  5. #5
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Non tu ne r�cup�res pas l'objet mais une r�f�rence, et �a n'a rien � voir.
    Lire un bouquin ou des cours sur les bases du langage ne serait pas du luxe.
    Et de toutes fa�ons une fonction peut bien retourner ce que bon lui chante alors je vois pas ce qui peut �tre perturbant ou non
    Et si tu as acc�s au code, lis-le! Tu verras qu'il n'y a rien de magique derri�re ce getInstance.

    https://cpp.developpez.com/faq/cpp/?...erence-de-type
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  6. #6
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Par d�faut
    Merci de prendre le temps de me r�pondre.
    Manifestement je ne suis pas clair sur ce qui est une difficult� de compr�hension pour moi. Je vais tenter de reformuler.

    J'ai un main. Dans ce main j'appelle une methode d'une une instance d'une classe abstraite. Cette m�thode n'est d�fini que dans la fille qui h�rite de cette classe abstraite.

    Je ne comprend donc pas o� se fait le lien entre mon instance dans le main, et la d�finition de la m�thode getInstance.


    J'ajouterai peut �tre juste que j'ai commenc� par dire que le c++ n'�tait pas connu pour moi. Si je viens poser une question ici, c'est pour soliciter de l'aide, ainsi qu'une explication p�dagogique. Bien entendu Je je vais devoir �tudier le sujet, lire le code, et passer du temps pour me mettre a niveau.
    Je ne suis pas convaincu de l'utilit� de bien insister sur le fait que je ne comprend pas, je suis la pour �a.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Possible d'instancier une interface ?
    Par nuriel2 dans le forum D�buter avec Java
    R�ponses: 5
    Dernier message: 27/03/2010, 23h07
  2. Instanciation d'Interface � la vol�e
    Par ElTchoupi dans le forum C#
    R�ponses: 19
    Dernier message: 11/03/2010, 17h57
  3. Probl�me d'instanciation d'interfaces
    Par madmox dans le forum D�buter avec Java
    R�ponses: 6
    Dernier message: 29/05/2007, 17h19
  4. R�ponses: 6
    Dernier message: 24/08/2006, 14h33
  5. R�ponses: 12
    Dernier message: 20/01/2006, 20h40

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