anarchysniper
Messages postés65Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention29 septembre 2005
-
31 mars 2005 à 13:46
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
1 avril 2005 à 19:32
Quelle est la meilleure manière de définir des valeurs par défaut aux propriétés d'une classe ?
Le ":" du C qui était bien pratique ne fonctionne évidemment pas en C++ ...
Faire initialiser les valeurs par une fonction new pour en changer la moitié ensuite est un sérieux gaspillage de puissance.
D'un autre coté, si, comme je le crains, le ":" du C, du point de vue
code compilé, revenait de toute façon à initialiser les valeurs dans
une fonction new invisible, que faire ?
Prier pour que la fonction d'optimisation du compilateur nous pardonne nos doubles initialisations ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 31 mars 2005 à 19:35
Les ':' du C dont tu parles ne peuvent qu'etre que les champs de bits
dans une structure, et ca n'a rien à voir avec une initialisation.
En C++, le moyen le plus rapide d'initialiser les membres d'une classe
avec des valeurs par défauts est de redéfinir le constructeur par
défaut (sémantiquement le constructeur qui peut etre appelé sans
paramètres).
class Foo
{
int a, b;
public:
Foo() : a(1), b(2) {}
};
Vous n’avez pas trouvé la réponse que vous recherchez ?
anarchysniper
Messages postés65Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention29 septembre 20051 1 avril 2005 à 11:31
Oui mais est-ce que les doubles initialisations sont supprimées par le préprocesseur ?
Ce serait en effet dommage de faire faire à la machine :
foo Foo ; // ^^
a = 2 ;
Cela reviendrait à faire :
foo Foo ;
Foo.a = 1 ;
Foo.b = 2 ;
Foo.a = 2 ;