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++Builder Discussion :

Comment créer plusieur instance d'une class


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Comment créer plusieur instance d'une class
    Bonjour,


    je suis un étudiant en informatique mon projet et la réalisation d'un simulateur de réseau ad hoc mon problème est comment créer un plusieurs instance d'une classe capteur et qu'elle outils pour afficher les objet (instance) sur c++ builder;
    merci d'avance.

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 632
    Points : 30 711
    Points
    30 711
    Par défaut
    Salut, et bienvenue sur le forum.

    Ben, le plus simple est, tout simplement, de créer une variable par instance que tu souhaite utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main()
    {
        MaClass var1; // crée une première instance de MaClass
        MaClass var2; // en crée un deuxième
        // ...
        MaClass varX; // en crée une Xième
        var1.doSomething(); // utilise la première instance
        varX.doSomethingElse(); // utilise la Xième instance
    }
    Cette pratique implique, tu l'aura sans doute deviné, que tu dois savoir combien d'instances sont nécessaires pour ton programme, ce qui n'est pas forcément le cas.

    Pour pouvoir créer un nombre inconnu d'instances de ta classe, l'idéal est de les regrouper dans une collection quelconque, adaptée à tes besoins (tu trouvera un schéma décisionnel sur cette entrée de la FAQ pour t'aider à choisir la bonne ).

    Il te "suffira" de rajouter chaque instance dans la collection que tu aura choisie au moment de la création, et de la récupérer au moment où tu souhaite l'utiliser

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 723
    Points : 25 622
    Points
    25 622
    Par défaut
    Voir aussi les Opérateurs New et Delete pour l'allocation dynamique, ainsi que le concept de RAII

    On reconnait rapidement un objet en instanciation statique (exemple de koala01) et en instanciation dynamique,
    statique, on utilise le point . comme dans "Obj.Prop" pour l'accès à ses membres.
    statique, on utilise la fléche -> comme dans "Obj->Prop" équivalent d'un (*Obj).Prop

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Bonjour et merci pour les réponses.
    Par exemple on a la classe (la structure capteur) qui contient les member suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct capteur{
        int nom ;
        int energy ;
        vector<int> z_s; //Zone_surveille par le capteur
    };
    Donc voici mon problématique, comment créer plusieurs instance (objets) de cette et quelle composant utilise dons le c++ builder pour afficher les objets capteur .le nombre des capteur choisissez par le utilisateur donc on ne peut pas fixer ou début par la créations statique (nom de la classe variable).
    Donc seul la création dynamique est utilisée.
    Donc comment utiliser cette instruction :
    capteur*ptr;
    ptr=new capteur;
    Pour chaque demande de le utilisateur.
    Merci d'avance.

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 723
    Points : 25 622
    Points
    25 622
    Par défaut
    je ne connais pas spécialement vector (allocation statique donc ton exemple ?), je viens du delphi et j'ai plus l'habitude d'un TIntegerDynArray ou TList

    Après, je ne comprend pas bien la question !
    Tu stockes le nombre des capteurs dans un fichier ini pour ne pas demander à chaque lancement
    tu fais une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      for(i=0 ; i < Edit->Text.ToInt(); i++)  
      Capteur* ptr = new Capteur();  
      List->Add(ptr)
    Si tes capteurs sont simulés par un autre programme, genre par TCP\IP, tu peux les créer à la volée dans un OnConnect

    Quoiqu'il arrive, tu stockes tout ça aussi dans un vector<capteur*> ou une TList

    Selon les versions les templates sont plus ou moins poussées par la TList

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Points : 288
    Points
    288
    Par défaut
    Bonjour,
    Tu peux créer les instances comme on t'a expliqué, en suivant le principe de base de la P.O.O.:
    Nom_Classe *objectx= new Nom_Classe;

    Pour ton allocation dynamique à la demande, il faudrait associer la demande de l'utilisateur à un évènement bien sur, par exemple un click sur un bouton ou un menu. Et dans la méthode associée à ce click ou .... tu fais ton allocation dynamique du capteur, comm tu l'as écris.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct capteur{
        int nom ;
        int energy ;
        vector<int> z_s; //Zone_surveille par le capteur
    };
    Pour ce qui est affichage, tu peux bien sur te débrouiller pour le faire, soit en déssinant toi même des images de capteurs puis les poser sur la Form.




    Citation Envoyé par zyaya Voir le message
    Bonjour et merci pour les réponses.
    Par exemple on a la classe (la structure capteur) qui contient les member suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct capteur{
        int nom ;
        int energy ;
        vector<int> z_s; //Zone_surveille par le capteur
    };
    Donc voici mon problématique, comment créer plusieurs instance (objets) de cette et quelle composant utilise dons le c++ builder pour afficher les objets capteur .le nombre des capteur choisissez par le utilisateur donc on ne peut pas fixer ou début par la créations statique (nom de la classe variable).
    Donc seul la création dynamique est utilisée.
    Donc comment utiliser cette instruction :
    capteur*ptr;
    ptr=new capteur;
    Pour chaque demande de le utilisateur.
    Merci d'avance.

Discussions similaires

  1. comment obtenir l'instance d'une classe
    Par JCD21 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/06/2008, 23h26
  2. comment créer deux instances d'une même base de données
    Par Dev_info dans le forum Administration
    Réponses: 5
    Dernier message: 19/03/2008, 19h59
  3. comment trier les instances d'une classe selon un attribut choisi
    Par rddev dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/05/2007, 01h01
  4. [oracle10g] comment créer plusieurs instances
    Par Loïck dans le forum Oracle
    Réponses: 2
    Dernier message: 16/02/2007, 09h49
  5. Réponses: 2
    Dernier message: 26/10/2006, 11h13

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