mouad001
Messages postés21Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 5 août 2014
-
5 août 2014 à 17:19
mouad001
Messages postés21Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 5 août 2014
-
5 août 2014 à 21:28
Bonjour,
je suis entrain de convertir un code c++ en c pour le compiler dans ma montre Pebble, mon problème est que je ne comprend pas la syntaxe d'une fonction ( le ':' utilisé après la déclaration de la fonction prayertimes):
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 5 août 2014 à 19:01
Bonjour.
Oui la syntaxe est bonne, c'est ce qu'on appelle une liste d'initialisation. C'est une bonne pratique et si tu fais du C++ sérieusement, tu n'utilises normalement que ça :).
On se sert de la liste d'initialisation pour initialiser des attributs non initialisables sinon.
Exemple
class Toto
{
int& _ref_i;
const int _cst_i;
};
Toto::Toto(int i)
: _ref_i(&i), _cst_i(i) // valide
{
}
Toto::Toto(int i)
{
_ref_i = &i; // invalide, on ne peut modifier une ref par affectation
_cst_i = i; // invalide, on ne peut modifier une valeur constante
}
Dans cette classe, on ne peut affecter de valeur à _ref_i et _cst_i que s'ils sont dans une liste d'initialisation. C'est la raison pour laquelle on initialise toujours des attributs avec une liste d'initialisation et jamais dans le corps du constructeur.