HELP ME C'est quoi une classe ?

cs_Oceane Messages postés 4 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 12 juin 2002 - 2 avril 2002 à 18:41
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 - 2 avril 2002 à 23:46
salut,

j'aurais besoin d'un petit coup de main. Je viens de commencer C++ et oui y un dédut à tout :)

Je m'explique, j'ai un projet à faire pour mon examen et pour qu'il soit valable, il faut que je créée des classes. Est ce que quelqu'un pour m'expliquer ce que c'est et à quoi ca sert ?

MERCI D AVANCE
A++ :)

3 réponses

cs_bidules Messages postés 48 Date d'inscription samedi 31 mars 2001 Statut Membre Dernière intervention 11 avril 2004
2 avril 2002 à 19:21
La question est vaste.
je suis moi meme debutant ds les classes, je v donc te dire ce que je sais :
on peut definir une classe comme un objet.En effet une classe se compose de variables, de fonctions, de procedures.
Les classes permettent une programmation plus facile car mieux structuré.
exemple :
class etudiant
{
public :
string nom, prenom;
double note[10];
int moyenne()
{
/*code pour faire la moyenne des notes contenu ds note*/
}
}

int main
{
etudiant e;
/*initialisation de tte les notes, des nom et prenom
remarque : le note[10] n'est pas astucieux car on doit avoir precisement les 10 notes. Pour bien faire il aurait fallu utiliser un pointeur mais comme tu debute je v pas t'embrouiller*/
cout<<e.nom<<"\t"<<e.prenom<<"\tmoyenne : "<<e.moyenne;
return 0;
}

La fonctions moyennes peut etre defini a l'extrieur de la classes et de ce fait eviter qu'elle soit inline(directement remplacer par le code lors de la compilation : il n'y a plus de saut vers la procedure donc c plus rapide (enfin je pense que c la signification)).En fait le plus souvent on choisi de la mettre a l''exterieur lorsque la procedure devient consequente.
Pour definir une procedure a l'exterieur il tout d'abord la declarer a l'interieur de la classe. Voici la syntaxe pour la definir a l'exterieur :

type NOM_DE_LA_CLASSE::NomDeLaProc(.....)
{
}

Il est possible d'initialiser automatiquement une classe lors de son appel grace a un constructeur.
En fait lorsqu'il n''y a pas de constructeur le compilateur en genere un par defaut et initialise les variables a null selon leur type(un int sera a 0, un string sera a "\0").Avec un constructeur tu initialise les variables a ce que tu veux.
Dans le meme etat d'esprit il existe les destructeur qui libere la memoire allouer pour une class : ils sont surtout utile lorsqu'on utilise des pointeurs.
un constructeur a obligatoirement le meme nom que la class et ne doit retourner aucune valeur (pas de void non plus)

Syntaxe d'un constructeur :
NOM_DE_LA_CLASSE::NOM_DE_LA_CLASSE(string n,string p......)
{
nom=n;
prenom =p;
......
}

l'appel d'un constructeur peut se faire implicitement ou explicitement :
etudiant e("dupont","louis",...); //implicite
etudiant e = etudiant("dupont","louis".....);//explicite

Voila en gros ce qu'est une classe. j'espere que ta compris qqchose ds mon barratin. il faut savoir qu'il existe egalement les notion d'heritage entre differente classe , d'ami(friend), private, protected (moi j'ai mis la clsss a public cad qu'on peut avoir acces a tout les elements).
0
cs_Oceane Messages postés 4 Date d'inscription mardi 2 avril 2002 Statut Membre Dernière intervention 12 juin 2002
2 avril 2002 à 19:46
Merci pour ton aide, c'est certainement plus clair que dans les bouquins. Et oui, j'ai compris quelque chose à ton barratin :)

A++
0
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
2 avril 2002 à 23:46
-------------------------------
Réponse au message :
-------------------------------

Merci pour ton aide, c'est certainement plus clair que dans les bouquins. Et oui, j'ai compris quelque chose à ton barratin :)

A++

-------------------------------
Réponse au message :
-------------------------------

La question est vaste.
je suis moi meme debutant ds les classes, je v donc te dire ce que je sais :
on peut definir une classe comme un objet.En effet une classe se compose de variables, de fonctions, de procedures.
Les classes permettent une programmation plus facile car mieux structuré.
exemple :
class etudiant
{
public :
string nom, prenom;
double note[10];
int moyenne()
{
/*code pour faire la moyenne des notes contenu ds note*/
}
}

int main
{
etudiant e;
/*initialisation de tte les notes, des nom et prenom
remarque : le note[10] n'est pas astucieux car on doit avoir precisement les 10 notes. Pour bien faire il aurait fallu utiliser un pointeur mais comme tu debute je v pas t'embrouiller*/
cout<<e.nom<<"\t"<<e.prenom<<"\tmoyenne : "<<e.moyenne;
return 0;
}

La fonctions moyennes peut etre defini a l'extrieur de la classes et de ce fait eviter qu'elle soit inline(directement remplacer par le code lors de la compilation : il n'y a plus de saut vers la procedure donc c plus rapide (enfin je pense que c la signification)).En fait le plus souvent on choisi de la mettre a l''exterieur lorsque la procedure devient consequente.
Pour definir une procedure a l'exterieur il tout d'abord la declarer a l'interieur de la classe. Voici la syntaxe pour la definir a l'exterieur :

type NOM_DE_LA_CLASSE::NomDeLaProc(.....)
{
}

Il est possible d'initialiser automatiquement une classe lors de son appel grace a un constructeur.
En fait lorsqu'il n''y a pas de constructeur le compilateur en genere un par defaut et initialise les variables a null selon leur type(un int sera a 0, un string sera a "\0").Avec un constructeur tu initialise les variables a ce que tu veux.
Dans le meme etat d'esprit il existe les destructeur qui libere la memoire allouer pour une class : ils sont surtout utile lorsqu'on utilise des pointeurs.
un constructeur a obligatoirement le meme nom que la class et ne doit retourner aucune valeur (pas de void non plus)

Syntaxe d'un constructeur :
NOM_DE_LA_CLASSE::NOM_DE_LA_CLASSE(string n,string p......)
{
nom=n;
prenom =p;
......
}

l'appel d'un constructeur peut se faire implicitement ou explicitement :
etudiant e("dupont","louis",...); //implicite
etudiant e = etudiant("dupont","louis".....);//explicite

Voila en gros ce qu'est une classe. j'espere que ta compris qqchose ds mon barratin. il faut savoir qu'il existe egalement les notion d'heritage entre differente classe , d'ami(friend), private, protected (moi j'ai mis la clsss a public cad qu'on peut avoir acces a tout les elements).
:)
0
Rejoignez-nous