bonjour tout le monde,
je viens de passer aux classes en C++ et j'aurais besoin de renseignements. On m'a dit que les classes en C++ étaient l'évolution des structures en C++.
J'ai programmé avec les structures et je me suis dit aller on se met aux classes. Mais la à ma grande surprise un élément vient me perturber: la taille d'une classe structure!!!
ma structure est déclarée de la facon suivante :
quand je fais un sizeof (struct ICMP_HEADER) ca me retourne la taille de ma structure soit 8
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 struct ICMP_HEADER { unsigned char icmp_type; unsigned char icmp_code; unsigned short icmp_cksum; unsigned short icmp_id; unsigned short icmp_seq; };
maitenant, j'ai voulu transfromer tout ca en classe, voila ce que ca a donné:
quand je cré un objet ICMP et que je souhaite obtenir sa taille avec un sizeof, cela me retourne la valeur 4??????? Pourquoi?
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 class ICMP { private: unsigned char icmp_type; unsigned char icmp_code; unsigned short icmp_cksum; unsigned short icmp_id; unsigned short icmp_seq; public: // Constructeur d'un objet ICMP ICMP(char type, char code, short id, short seq); //destructeur d'un objet ICMP ~ICMP(); // Ensemble des get, permet de retourner toutes les valeur de l'entête ICMP char getType(); char getCode(); short getCheksum(); short getId(); short getSequence(); //Ensemble des set, permet de donner une valeur à chaque champ de l'entête. void setType(char type); void setCode(char code); void setChecksum(short cheksum); void setId(short id); void setSequence(short sequence); };
les données membre de ma classe sont identique à celle de ma structure. cependant je ne trouve pas les meme tailles??
Partager