Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2577 connectés 

 


Dernière réponse
Sujet : [C] On peut ajouter un constructeur à une struct?
deathsharp c pas jolie d'utiliser des struct en C++

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
deathsharp c pas jolie d'utiliser des struct en C++
LeGreg 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.
 
C'est ce que je fais là : http://cycojesus.free.fr/progs/openglavity/index.htm (tu dl les sources et tu cherche la fonction initCorps())

 

[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:
 
#include <stdlib.h>
 
struct maStruct
{
 
   struct maStruct *(*constructeur)();
}
 
struct maStruct *constructeur()
{
 
   struct maStruct *retval;
 
   retval=(maStruct *)malloc(sizeof(maStruct));
 
   retval->constructeur=constructeur;
 
   return retval;
}
 
int main()
{
   
   struct maStruct struct1,*struct2;
 
   struct1.constructeur=constructeur;
 
   struct2=struct1.constructeur();
 
   free(struct2);
 
   return 0;
}
 
 
 
 
 
 
si non fait du C++ ;)
Alload Tout est dans le titre?
:)

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)