C quoi une classe en C ?

unclecrufek Messages postés 7 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 26 mai 2002 - 25 mai 2002 à 21:27
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 - 10 nov. 2003 à 00:16
bah ouais c'est quoi ?
En fait si je pose la question c'est parce qu'on ma conseillé d'en faire une pour pouvoir manipuler
des tres grands nbres et de redefinir dedans les operations de base (+,-,*,/ et %)
(Mon but etant d'arriver a pouvoir faire des divisions euclidiennes de tres grds nombres)
D'ailleur, si quelqu'un a deja fait une telle classe, je suis preneur!

Merci d'avance a tous ceux qui m'aiderons

3 réponses

Blustuff Messages postés 20 Date d'inscription jeudi 7 mars 2002 Statut Membre Dernière intervention 27 juin 2007
28 mai 2002 à 08:47
Je vais pas détailler en entier, normallement il faut une 50n de pages pour parler des classes.
Une classe est un ensemble de variables en gros. En fait, c'est un ensemble de classes, une variable étant une classe, un tableau étant également un classe. On peut faire bcp de choses avec les classes, mais la ce qui t'interesse, c'est d'avoir une classe qui contient, 2 nombres la partie haute de ton grand nombre, et la partie basse. (Avec deux nombres, tu peux avoir un nombre qui a pour taille (4*10^9)^2 = 16*10^18 au maximum, ce qui est corect, si tu veux plus grand, utilise plus de deux variables. Tu définis ta classe :

//Cela définit une classe contenant deux variables int ://sizeof(GrandNombre) 4*2 8

class GrandNombre
{
int PartieaBasse;
int PartieHaute;
};

Ensuite tu dois surcharger tes opérateurs pour cette classe

GrandNombre& operateur++(GrandNombre& Nombre)
{
Nombre.PariteBasse++; //Incrementation de la partie basse du nombre
if (Nombre.PartieBasse) //Si la partie basse est nulle,
Nombre++; Incrementer la partie haute
}

Evidement ici c'est beaucoup plus simple. Pour d'autres opérations comme l'addition on peut utiliser les registres du processeurs pour savoir si il y a une retenue sur la partie haute (d'ailleur on peut aussi pour l'addition).
Il faut encore que je t'explique encore qqchose sur les classes.

GrandNombre MonNombre; //C'est une déclaration d'instance de classe. C'est une variable qui suit le modèle de la déclaration (premier exemple)

GrandNombre* MonPointeurSurNombre; //Un pointeur sur une classe de type Grand Nombre

MonNombre.PartieBasse; //Accès a la partie basse de MonNombre

MonPointeurSurNombre->PartieBasse; //Accès a la partie basse de la variable pointée par MonPointeurSurNombre.

Pour la divisions euclidienne, ce sera plus difficile. Tu pourra utiliser les congruences si tu sais le faire.

Blustuff
0
NettoyeurFantome Messages postés 35 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 10 mai 2003
6 sept. 2002 à 01:10
va sur haypoCALC : c un projet qui vise à faire une calc formelle

@+

Julien IBARZ alias [Nettoyeur]Fantome
0
D1m3x Messages postés 402 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 21 juillet 2005 1
10 nov. 2003 à 00:16
dans le sujet : classe en C -> c'est en C++ les classes, mais bon...
[DmX]
0
Rejoignez-nous