cs_pachalcs
Messages postés5Date d'inscriptionsamedi 9 mai 2009StatutMembreDernière intervention 5 octobre 2011
-
12 août 2011 à 11:00
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
12 août 2011 à 11:33
Bonjour,
Je suis entrain de développer un générateur de traffic et je voulais savoir si l'on peut déclarer des objets (par exemple Packet) dans les attributs de la classe Packet pour pointer sur d'autre paquets.
Concrètement est ce qu'on peut faire cela dans les attributs:
class Packet
{
private:
Packet *m_previousPacket; // EST CE QUE C'EST POSSIBLE?
Packet *m_followingPacket; // EST CE QUE C'EST POSSIBLE?
public:
DropPacket(); // PAS IMPORTANT POUR LA QUESTION
MarkedPacket(int VLAN); // PAS IMPORTANT POUR LA QUESTION
};
Merci d'avance
A voir également:
Déclarer des objets dans les attributs de la classe définissant l'objet déclaré
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 12 août 2011 à 11:18
Oui, c'est possible.
Au vu de ton code, tu cherches à chainer des éléments. Plutôt que de ré-inventer la roue, je te proposais de voir si la classe vector de la STL pouvait correspondre à tes besoins...
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 12 août 2011 à 11:33
Petite précision:
- std::array => Tableau à taille fixe.
- std::vector => Tableau à taille variable.
- std::list => Liste doublement chaînée.
- std::forward_list => Liste simplement chaînée.
En gros, ce que Buno te dit, c'est qu'il serait préférable pour toi de faire:
class Packet
{
public:
DropPacket();
MarkedPacket(int VLAN);
};
Puis:
std::list packets;
// ou
std::list packets;
// ou encore mieux
std::list packets; // En utilisant un boost::intrusive_pointer sur Packet.
Si tu n'as pas besoin de "retourner en arrière", alors un std::forward_list serait plus adapté qu'un std::list.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
cs_pachalcs
Messages postés5Date d'inscriptionsamedi 9 mai 2009StatutMembreDernière intervention 5 octobre 2011 12 août 2011 à 11:11
Je n'ai pas compris ta question? En fait mon probleme c'est de savoir si je peux déclarer un objet Packet dans les attributs de la classe décrivant ce meme objet?