Merci. Si je comprends bien, c'est un objet qui implémente donc un tableau amélioré (conteneur séquentiel, accès par itérateur ou direct). Je suis en train de relire les chapitres qui vont bien. ^^
deleted2 Le 26/04/2010 à 17:15Edité par deleted2 le 26/04/2010 à 17:43 Donc si j'ai un pointeur vers un conteneur qui contient des objets, je fais ça ?
for (int i=0; i == taille - 1 ; i++)
(*ptr_conteneur)[ i ].méthode();
?
Ok, en fait tu utilises les conteneurs de la STL. Donc oui, il me semble que l’opérateur [] te retourne le contenu à l’indice i.
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Bah si, sûrement que bout à bout, des petites mesurettes comme ça ont un impact, mais ce n’est pas forcément la priorité.
Enfin, quoi qu’il soit je ne vois pas pourquoi on aurait un déréférencement de plus sur le tas.
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Pourquoi un pointeur ? Pourquoi pas un std::vector, directement comme attribut de classe ?
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Jyaif Le 26/04/2010 à 19:31 tu t'en tape de comment il fait. Et tu n'as pas à redimensionner le vecteur explicitement, tu peux te contenter de faire des m_ModuleList.push_back(mon_pointeur);
Anéfé, j'ai lu cette méthode dans mon bouquin.
Bon, j'ai lu la doc de Qt pour les signaux et slots... Je me doutais bien que ça exigeait de marcher avec des QOBECTS partout, que ça nécessitait de compiler avec qmake etc...
Donc exit.
J'ai implémenté cette classe ultra-basique de messagerie :class Message
{
public:
Message();
bool isMessageForMe(int myID);
bool mayIWrite();
int getSenderID();
int getMsgMain();
void *getMsgObjPtr();
int getMsgData();
void sendMessage(int senderID, int dest, int msgMain, void *msgObjPtr, int msgData);
private:
Message(const Message &); // Only one messenger !
Message operator=(const Message &);
int m_SenderID;
int m_Dest;
int m_MsgMain;
void *m_MsgObjPtr;
int m_MsgData;
};
Les noms de méthode me semblent explicites : puis-je écrire un message (il ne doit pas y en avoir dans ... l'enveloppe ?), est-ce que le message est pour moi ? envoi de tel message, des récupérateurs de messages, et une méthode pour en envoyer un.
Au niveau des données, chaque envoyer met sont ID, l'ID du destinataire, un type de message (fermeture, ouverture de module, quitter etc...), un pointeur vers un éventuel objet (dont le destinataire saura quoi faire), un éventuel entier (pour les messages les plus simples, genre {lancer un module, _module_truc}).
Tous les objets utilisés et potentiellement destinataires/envoyeurs pourront consulter leurs messages et en envoyer aussi (sans téléscopage, il faut un ACK pour en écrire un).
Ca vous parait bien ? Je veux pas faire une file de message, je veux rester très simple. Comme je suppose que vous avez déjà dû avoir à faire un truc similaire, vous trouver ça comment ? qu'est-ce qui pourrait ne pas aller ?
bien entendu on ne peut pas attendre autre chose d'un mec du steering commitee de KDE, environnement qui se base avant tout sur Qt. Ca fait rien, c'est pas grave.