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

MATLAB Discussion :

handles vers des objets


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 94
    Points : 85
    Points
    85
    Par défaut handles vers des objets
    Bonjour,

    Je programme de la POO sous Matlab et j'aimerais avoir l'avis des lecteurs.

    Est-ce que c'est une bonne idée de créer un objet "handle" vers des gros objets pour assurer la communication entre les objets.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    classdef myhandleC < handle
       properties
         monhandle
       end
    methods
        function obj=myhandleC(varargin)
        obj.monhandle=varargin{1};
       end
       function delete
         delete(obj.monhandle);
       end
    end
    end
    et hop, on crée ensuite un "myhandleC" pour chaque objet volumineux dont je veux transmettre l'identité à un autre objet sans le transmettre intégralement.


    En fait, c'est la logique des pointeurs du C++ que je veux utiliser mais je crois qu'elle n'Est pas aussi bien développée sous Matlab que sous C++. C'Est pourquoi je crois que je dois créer ma propre classe.

    Merci d'avance pour vos avis

    oodbae

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    En fait je pense pas que ca va changer grand chose de faire comme ca.

    Si tu veux passer des éléments par référence plutôt que par valeur ce qu'il faut savoir c'est que MATLAB décide par lui-même d'utiliser des pointeurs ou non (et donc tu ne peux pas explicitement le lui dire).

    En fait si tu passes un argument à une fonction (par exemple) celui-ci sera passé sous la forme d'un pointeur tant qu'il n'est pas modifié (une seule instance en mémoire) par contre dès qu'il est modifié MATLAB en crée une copie.

    Un exemple simple, il s'agit de créer une matrice qui alloue une taille mémoire significative pour qu'on puisse la voir (avec la commande MEMORY).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    memory; % Permet de voir la taille mémoire utilisée
    a = ones(10000,10000); % Adapter la taille de la matrice en fonction du PC
    memory; % On voit la mémoire "consommée" par a
    b = a;
    memory; % Pas de modification significative de la mémoire
    b(1,1) = 2;
    memory; % La place mémoire double: copie de a vers b puis remplacement de la valeur
    J'espère que ca répond à la question.

    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 94
    Points : 85
    Points
    85
    Par défaut
    merci pour ta réponse duf

    ca répond à ma question , mais ca ne résout pas mon problème , qui concerne le passage de référence pour gérer des events et des listeners entre objets liés par des relations de composition, où l'un des objets est créé par l'autre.



    mais je vais faire un ou deux tests avant de répondre plus avant.

    cordialement
    oodbae

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2009
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 94
    Points : 85
    Points
    85
    Par défaut
    OK,

    en fait, jai résolu mon problème parce que j'ai compris que le premier argument de la fonction "notify" est l'objet lui-même , et non l'objet qui écoute l'évènement.

    Merci
    oodbae

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableaux de pointeurs vers des objets
    Par Pinou421 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/07/2013, 12h59
  2. Tableau de pointeurs vers des objets
    Par rdtech dans le forum Débuter
    Réponses: 2
    Dernier message: 17/02/2013, 19h30
  3. cast d'un objet vers des types dynamiques
    Par aymen007 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 25/06/2008, 09h31
  4. exporter des objets d'une base vers une autre
    Par RGShoop dans le forum Access
    Réponses: 3
    Dernier message: 07/09/2005, 11h52
  5. Réponses: 6
    Dernier message: 12/02/2004, 21h55

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