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

  FORUM HardWare.fr
  Programmation

  [C] On peut ajouter un constructeur à une struct?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] On peut ajouter un constructeur à une struct?

n°102925
Alload
Posté le 20-02-2002 à 20:00:01  profilanswer
 

Tout est dans le titre?
:)

mood
Publicité
Posté le 20-02-2002 à 20:00:01  profilanswer
 

n°102935
LetoII
Le dormeur doit se réveiller
Posté le 20-02-2002 à 20:34:50  profilanswer
 

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++ ;)

n°102949
Alload
Posté le 20-02-2002 à 21:20:27  profilanswer
 

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);

n°102969
LetoII
Le dormeur doit se réveiller
Posté le 20-02-2002 à 22:35:24  profilanswer
 

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

n°102996
Kristoph
Posté le 21-02-2002 à 00:44:55  profilanswer
 

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 :)

n°103016
deepcore
Posté le 21-02-2002 à 07:59:26  profilanswer
 

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).


---------------
"Si ça peut déconner, ça va déconner..."
n°103018
deathsharp
Posté le 21-02-2002 à 08:04:17  profilanswer
 

il n'y a pas de constructeur dans une structure...


---------------
What butter and whiskey won't cure, there is no cure for.
n°103023
BENB
100% Lux.
Posté le 21-02-2002 à 09:10:47  profilanswer
 

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...

n°103041
cycojesus
Mèo Lười
Posté le 21-02-2002 à 10:08:47  profilanswer
 

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]


---------------
Chết rồi ! ✍ ⌥⌘ http://codeberg.org/gwh
n°103216
LeGreg
Posté le 21-02-2002 à 15:31:15  profilanswer
 

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

mood
Publicité
Posté le 21-02-2002 à 15:31:15  profilanswer
 

n°103233
deathsharp
Posté le 21-02-2002 à 15:59:47  profilanswer
 

c pas jolie d'utiliser des struct en C++


---------------
What butter and whiskey won't cure, there is no cure for.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] On peut ajouter un constructeur à une struct?

 

Sujets relatifs
[JAVA] Comment ajouter des ascenceurs a JTextArea ???[JAVA]: Lever une exception d'un constructeur?
[Windoz] Ajouter un service à XP/Nt/2000 ?[JAVA]Ajouter un package à mon compilateur
[SQL] Comment ajouter des enregistrement dans 1 tableComment ajouter un appwizard à Visual Studio .NET?
[DELPHI] Ajouter des menus par Prog[VB6] ajouter un ocx
Ajouter une barre d'outil perso sur IE 
Plus de sujets relatifs à : [C] On peut ajouter un constructeur à une struct?


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