-------------------------------
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).
