Bonjour, je possède une structure contenue dans une classe:
Plusieurs classes héritent de cette classe, comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Packets { public: int size; int kind; struct Packet { }; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager