luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 26 févr. 2006 à 20:33
Bon pour te montrer un exemple de surchage d'addition. Si ta classe, on l'appelle VLI (very large integer) où chaque objet est constitué d'un tableau alloué statiquement (et non dynamiquement comme tu le fais dans ta source) de TAB_SIZE entiers (environ 1000 pour des grands chiffres). Ta classe a l'allure suivante:
classe VLI
{
public:
...
// on définie l'opérateur +. Puisque c'est opérateur est symétrique, il est plus logique de le déclarer en fonction ami et donc externe
// et apres on définie la fonction d'addition
VLI operator + (const VLI & _objet1, const VLI & _objet2)
{
VLI new_VLI;
// la tu fais l'addition de ces deux VLI (_objet1 et _objet2), tu stockes le résultat dans new_VLI.
// et tu retournes le nouveau VLI créé.
return new_VLI;
}
Et maintenant dans ton programme, tu pourras écrire :
VLI c(a + b); // en utilisant l'opérateur de recopie et en considérant que a,b sont initialisés correctement.
Si tu surchares l'opérateur << du C++. Tu pourrais écrire: cout << a + b << endl;
Bon aller, voila pour une petite présentation. ++
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 26 févr. 2006 à 20:23
Oke si tu débutes le C. J'ai pas fais assez attention. Tu précisais en C :)
Dans ma tete, le C++ permet tellement plus de chose, donc pour moi c'était du C++.
Mais meme si tu ne fais pas un système de classe. Tu peux te pencher sur les structures, et fournir une série de fonction avec. Comme des fonctions pour additionner, multiplier,... ces grands nombres.
Mon avis personnel étant que, ce site n'a pas pour but d'accueillir les essais personnels en matière de programmation. Si tu regardes ce site, il y a des quantités de sources très avancés qui ont un intérêt, car non seulement elle représente bcp de travail, ou elles présentent autre chose que ce que tout le monde sait à peu près faire.
Pour l'orienté objet, il y a des quantités de documents sur le C++ sur le web. En programmation basique, ton meilleur ami, c'est Google.
Pour ce qui est de la surchage des opérateurs, tu penses bien qu'il est hors de question de parser une string :)
Bon a part tout ca, bonne continuation en C :)
TRAX44
Messages postés93Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention20 juillet 2006 26 févr. 2006 à 19:48
j'ai commencé ce programme deux jour après avoir commencé a touché au C. Je ne saivais même pas (quand je l'ai fait) qu'il existait un system de classe en C.
Sinon pour surcharger les opérateur en orienté objet je vois pas comment il est possible de faire (a part parser une string).
Luthor, tu pourrais nous fair un petit tuto pour nous expliquer ? :D
Sinon, non c'est pas extraordinaire, ça permet juste de pas utiliser un truc tout pret que tu sais pas comment ça marche :)
@+
trax
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 26 févr. 2006 à 19:40
C'est pas réutilisable comme code ca. Faut créer une classe pour gérer ca, surcharger les opérateurs. Enfin plein de truc qui feraient que quelqu'un d'autre puisse l'utiliser.
Car en lui meme, le principe n'a rien d'extraordinaire.
++
TRAX44
Messages postés93Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention20 juillet 2006 26 févr. 2006 à 15:17
j'ai déjà fait un gros effort avant de poster. et je veux pas la note d'un ami mais celle d'un regart critique ! :)
pcmanof94
Messages postés4Date d'inscriptionmercredi 21 janvier 2004StatutMembreDernière intervention26 février 2006 26 févr. 2006 à 15:13
tu pourais faire un petit effort de lisiblilité lol ton code ressemble pas mal a ta chambre ...
mais bon je t'aime bien mon petit traxou et ca marche donc je te met a 9/10 lol
26 févr. 2006 à 20:33
classe VLI
{
public:
...
// on définie l'opérateur +. Puisque c'est opérateur est symétrique, il est plus logique de le déclarer en fonction ami et donc externe
friend VLI operator + (const VLI & _objet1, const VLI & _objet2);
private:
unsigned int tab[TAB_SIZE];
};
// et apres on définie la fonction d'addition
VLI operator + (const VLI & _objet1, const VLI & _objet2)
{
VLI new_VLI;
// la tu fais l'addition de ces deux VLI (_objet1 et _objet2), tu stockes le résultat dans new_VLI.
// et tu retournes le nouveau VLI créé.
return new_VLI;
}
Et maintenant dans ton programme, tu pourras écrire :
VLI c(a + b); // en utilisant l'opérateur de recopie et en considérant que a,b sont initialisés correctement.
Si tu surchares l'opérateur << du C++. Tu pourrais écrire: cout << a + b << endl;
Bon aller, voila pour une petite présentation. ++
26 févr. 2006 à 20:23
Dans ma tete, le C++ permet tellement plus de chose, donc pour moi c'était du C++.
Mais meme si tu ne fais pas un système de classe. Tu peux te pencher sur les structures, et fournir une série de fonction avec. Comme des fonctions pour additionner, multiplier,... ces grands nombres.
Mon avis personnel étant que, ce site n'a pas pour but d'accueillir les essais personnels en matière de programmation. Si tu regardes ce site, il y a des quantités de sources très avancés qui ont un intérêt, car non seulement elle représente bcp de travail, ou elles présentent autre chose que ce que tout le monde sait à peu près faire.
Pour l'orienté objet, il y a des quantités de documents sur le C++ sur le web. En programmation basique, ton meilleur ami, c'est Google.
Pour ce qui est de la surchage des opérateurs, tu penses bien qu'il est hors de question de parser une string :)
Bon a part tout ca, bonne continuation en C :)
26 févr. 2006 à 19:48
Sinon pour surcharger les opérateur en orienté objet je vois pas comment il est possible de faire (a part parser une string).
Luthor, tu pourrais nous fair un petit tuto pour nous expliquer ? :D
Sinon, non c'est pas extraordinaire, ça permet juste de pas utiliser un truc tout pret que tu sais pas comment ça marche :)
@+
trax
26 févr. 2006 à 19:40
Car en lui meme, le principe n'a rien d'extraordinaire.
++
26 févr. 2006 à 15:17
26 févr. 2006 à 15:13
mais bon je t'aime bien mon petit traxou et ca marche donc je te met a 9/10 lol