Définir le type d'une structure contenue dans une classe
Bonjour, je possède une structure contenue dans une classe:
Code:
1 2 3 4 5 6 7 8 9 10 11
| class Packets
{
public:
int size;
int kind;
struct Packet
{
};
}; |
Plusieurs classes héritent de cette classe, comme:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Version: public Packets
{
public:
struct Packet
{
int version;
};
Packet vars;
Version()
{
size=8;
kind=29;
}
}; |
Est ce que ceci est possible:
Code:
1 2 3 4 5
| Version version;
void function (Packets::Packet packet)
{
} |
?
-------------------------------------------
Une bonne pratique serait de déclarer "Packet vars;" dans la classe mère, pour faire un "void function (Packets packet)" puis faire un "packet.vars". Cependant je ne peux pas faire ça car si je fais un (char *)version, il me remplace mes "vars" de la classe fille par l'adresse du pointeur de la classe mère.
Je ne peux pas non plus coder "function" dans la classe fonction pour d'autres raisons...
Voyez-vous une autre solution si on peut pas définir le type Packets::Packet ?
Merci.
-------------------------------------------------
Finalement j'ai compris, ici ça marche pas parce que les structures Packet sont différentes dans chaque classe héritée.