luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
29 déc. 2004 à 22:48
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005
-
30 déc. 2004 à 20:42
Certain reconnaitront surement le tutoriel en question. J'ai rajouté quelques trucs au gestionnaire d'exception, mais je bloque sur le point suivant:
Je n'arrive pas à initialiser un pointeur static, voila la class :
class CException : public std::exception
{
private:
static void (*reaction)(CException&); // le pointeur sur la fonction qui prend en paramètre une référence de CException.
public:
static void set_reaction(void (*fn)(CException&)) { reaction = fn; }
// la fonction pour changer ce pointeur
...
};
void CException::reaction = NULL; // et mon essai d'initialisation
En fait, malgré les livres que j'ai sur les membres static et les sites internet, le pointeur de fonction ne pose pas de problème, mais le tout mélangé...
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 30 déc. 2004 à 01:37
Bon c'est vrai que je patoge dans la semoule avec leur gestionnaire, j'ai pas l'habitude. De plus, le pointeur de fonction n'est pas du tout intuitif :) Donc c'est vrai, c'est pas logique ce que j'ai écris, mais c'est mieux que rien dans le sens ou, j'espère toujours que les messages d'erreurs m'aideront.
Tient d'ailleurs je suis le seul, ou les messages d'erreur de DevC++ sont vraiment "nul" ? (4.9.8.0)
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 30 déc. 2004 à 15:39
si on fait int *p;
p = 0;
il n'y aura pas un warning du compilateur a propos du type ? (c'est pourquoi NULL est mieux cas il caste le 0 en (void*)0 et de plus je suis du meme avis : c'est beaucoups plus lisible).
Un deniere remarque, le C++ etant par definition compatible avec le C (oui car il est plus plus !), NULL existe aussi et marche tout autant.
Pourquoi faire simple quand on peut faire compliquer ?
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 30 déc. 2004 à 18:38
en C++ le type de 0 est déterminé par le contexte. S'il s'agit d'un pointeur, cela indique qu'il ne pointe pas sur un objet. Cela est du au typage plus fort en C++ qu'en C.
En tout cas, Stroustrup le conseille.
en C, on utilise NULL.
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 30 déc. 2004 à 19:20
NULL est donc définie correctement, mais il ne faut pas oublier que les implémentations des librairies standard C et C++ varient selon les compilateurs.
Pas la peine de se voiler la face, s'il faut mettre 0, on met 0. ça evite d'avoir à vérifier que NULL est définie correctement ...
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 30 déc. 2004 à 19:31
Mais justement c'est la tout le magie de la chose, il faut mettre NULL comme cela ca marhce dans tout les cas puisqu'il fait du C++, c'est donc defini comme 0, donc tout va pour le mieux dans le meilleurs des monde possible !
Pourquoi faire simple quand on peut faire compliqué ?
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 30 déc. 2004 à 19:39
Vecchio56> Tu parles francais comme une vache espagnoles (:
Il n'y avait pas de faute dans la signature de JCDjcd.
Règle simple : quand un verbe précéder un verbe a l'infinitif, il sera lui meme à l'infinitif!
JCDjcd> Tu peux écouter vecchio pour ses conseils en programmation, mais en francais prend plutot un dico.
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 30 déc. 2004 à 19:58
DeAtHCrAsH> et si, les "compilateurs" ont la liberté d'implémenter certaines parties des librairies standard comme bon leur semble. Le standard évolue, tout n'est pas parfait, et on va pas attendre 50 ans pour fixer un standard que personne n'utiliserai alors puisque tout le monde serait habitué à faire autrement.