une struct = classe en C++
faut pas chercher c'est comme ca.
la seule difference c'est que
par defaut tout membre non specifie
d'une classe est private
et tout membre non specifie
d'une struct est public.
(pour se rapprocher de ce que
c'etait en C)
et puis plus la peine de faire de typedef
comme en C.
A+
LEGREG
cycojesus
ba tu fais une macro :
#define constructeur_struct_A(x, y, z) {A.a=x; A.b=y; A.c=z}
mieux, tu def un tableau dynamique de struct + une fonction/macro qui ajoute une struct à ce tableau. Après faut voir pour gérer l'accès à ces structs dans le tableau.
[jfdsdjhfuetppo]--Message édité par cycojesus--[/jfdsdjhfuetppo]
BENB
pas de constructeurs en C
par contre en C++ une struct peut avoir un constructeur
quand a la vitesse d'execution, je ne pense pas que la difference soit sensible, et en C je pense meme que le code genere doit etre identique...
deathsharp
il n'y a pas de constructeur dans une structure...
deepcore
Kristoph a écrit a écrit :
Alons, les 2 methodes sont aussi rapides les unes que les autres. Ca vous dit quelque chose le code inline ?
Et je crois que tu peux mettre un constructeur sur une struct, mais à ce niveau la, il n'y a plus beaucoup de difference avec une classe ou tout est publique :)
Là je comprends pas tout, constructeur, classe... en C :??:
Je pense qu'il y a du avoir un bug qqpart (C++ plutôt je pense).
Kristoph
Alons, les 2 methodes sont aussi rapides les unes que les autres. Ca vous dit quelque chose le code inline ?
Et je crois que tu peux mettre un constructeur sur une struct, mais à ce niveau la, il n'y a plus beaucoup de difference avec une classe ou tout est publique :)
LetoII
si tu cherche la rapidité je pense qu'il vaut mieu faire:
struct maStruct test;
test.a=1;
tu économise un jump comme ça, par contre ton code va être un poil plus volumineux
Alload
Oki, c'est ce que je pensais. Donc à partir de là, j'aimerais savoir, au niveau de la rapidité de l'exécution, si il vaut mieux créer:
1. struct test
{
int a, b, c;
};
et remplir en faisant: test temp; temp.a = x; temp.b = y; temp.c = z;
2. class test
{
public:
int a, b, c;
test(int x, int y, int z) {a = x; b = y; c = z;}
};
et remplir en faisant ça: test temp(x, y, z);
LetoII
non, à la limite tu peux faire un pointeur de fonction qui va créer une structure, par exemple: