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 :
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;
};
quand je fais un sizeof (struct ICMP_HEADER) ca me retourne la taille de ma structure soit 8

maitenant, j'ai voulu transfromer tout ca en classe, voila ce que ca a donné:
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);
};
quand je cré un objet ICMP et que je souhaite obtenir sa taille avec un sizeof, cela me retourne la valeur 4??????? Pourquoi?

les données membre de ma classe sont identique à celle de ma structure. cependant je ne trouve pas les meme tailles??