cs_pachalcs
Messages postés5Date d'inscriptionsamedi 9 mai 2009StatutMembreDernière intervention 5 octobre 2011
-
12 août 2011 à 11:00
cptpingu
Messages postés3835Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention 1 novembre 2022
-
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és15342Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention26 janvier 2023103 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és3835Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention 1 novembre 2022124 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?