je ne comprend pas ce qu'est et à quoi sert:
operator T () const {return value;}
je ne comprend pas ce qu'est et à quoi sert:
operator T () const {return value;}
Pose la template pour T = double.
C'est la fonction operator double() const {return value;}Il s'agit d'une fonction spécial permettant le cast implicite de Variable<double> en double.
Ca te permettra par exemple d'écrire cos(var)
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
ca marche, merci.
Tu fais du C# toi non ?
Parce que voir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 double Number::specialOperation(const Number A,const Number B,const Number C,const Number D){ if(D.value == 0){ cout<<"ERROR, D = 0, CANNOT DIVIDE BY THIS NUMBER"<<endl; return NULL;Etc..
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(result == NULL)
Ca fait un peu mal.
const copie : inutile
return NULL pour un double (et être surpris ? )
Comparer un double à NULL
Avec un "vieux" compilo, passe encore que NULL sera un define à 0, t'es tout juste bon pour un éventuel warning de comparaison double/int, mais avec un compilo à jour, tu auras juste une erreur de compilation.
Et surtout : quelle est la plus-value de passer par une classe nombre ?
Si la réponse est aucune, comme je le pense, alors l'intérêt est lui aussi aucun.
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
je pensait que NULL etait une valeur spéciale, qui ne peut pas etre affichée par cout par exemple, ou qui ne peut pas etre manipulée, mais non, en fait c'est un 0
pour la vérif de (D.value == 0) j'aurais du la mettre dans specialOperationPrint et non dans specialOperation
pour la plus-value, c'est de ne pas surcharger le main.cpp, par ce qui est dans le main() ou des fonctions à coté
je voulais savoir si sa choquait ou si ca paraissait recevable, pour toi clairement ca choque
(ou #define NULL (void*) 0)
HS : c'est nullptr, pas null_ptr. Et pas besoin de lib, c'est dans le C++11
@FoX_*D i E*
Tu ne dis pas dans quel contexte tu veux créer cette classe, difficile de dire si cela est adapté (ie si elle répond correctement à un besoin - puisque l'on ne connait pas ce besoin)
Si c'est un classe pour encapsuler des nombres et faire du debug/profiling dessous ou pour sécuriser le code (par exemple initialiser à 0 les types fondamentaux), on va probablement vouloir :
- utiliser n'importe quel type. Donc utiliser un template
- utiliser de façon transparente cette classe ou le type sous-jacent
- avoir le choix d'enregistrer un string ou non avec la valeur
donc pouvoir faire par exemple :
On peut imaginer une telle classe pour d'autres choses, mais dans tous les cas, il ne faut pas faire cela systématiquement. Au pire, on fera des using pour redéfinir ses propres types fondamentaux (par exemple si on fait du code plateforme spécifique et que l'on veut être sur de la taille des int, on peut faire un using Int = int32_t), mais sans raison particulière, c'est un peu inutile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #ifdef USE_MY_WONDERFULL_CLASS using Int = MyClass<int>; using Double = MyClass<double>; #else using Int = int; using Double = double; #endif
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager