cs_Oceane
Messages postés4Date d'inscriptionmardi 2 avril 2002StatutMembreDernière intervention12 juin 2002
-
2 avril 2002 à 18:41
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDerniè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 ?
cs_bidules
Messages postés48Date d'inscriptionsamedi 31 mars 2001StatutMembreDernière intervention11 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)
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).
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 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)
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).
:)