Chap2 Méthodes Classe
Chap2 Méthodes Classe
Chap2 Méthodes Classe
Définition: on peut déclarer le type et le nom d'une méthode en premier lieu sans corps et
paramètres réels; après arrive en dernier lieu le code du corps;
syntaxe:
Classes et objet:
définition: une classe est une entité (moule) pour générer (instancier) les objets; elle est
composée des champs (attributs -variables- et méthodes typées ou non typées -procédures
ou fonctions- ces membres sont considérés en premier temps tous publiques dont il faut les
mentionnés (car en C++ si vous oubliez le qualificateur public les membres sont tous privés).
pour pouvoir manipuler les membres des classes et bénéficier de ces services il faut
créer des objets via ces classes par l'instanciation.
on peut créer plusieurs objets de la même classe (alors la classe devient comme un
type) ; ces objets ont les mêmes éléments (membres) mais de valeurs différentes.
class A {
public:
int i; // l'attribut 1
int double_i() { // méthode 1 typée
return 2*i; }
void affiche(){ //méthode 2 non typée
cout<<"le nombre i="<<i<<"et son double est ="<<double_i()<<endl; }
};
alors pour valider les composants de la classe on va instancier des objets et accéder au
membres via ces derniers dans la méthode main() ainsi que dans la conception d'autres
classes comme suit:
int main() {
A a1,a2; //création de deux objets a1 et a2 avant tous.
i=10; // erreur.
a1.i=10; a2.i=5; //ok
affiche(); //erreur
a1.affiche(); a2.affiche(); //ok
cout<<"le premier nombre i="<<a1.i<<"et son double est ="<<a1.double_i()<<endl;
cout<<"le deuxième nombre i="<<a2.i<<"et son double est ="<<a2.double_i()<<endl;
return 0; }
Récapitulation:
#include <iostream>
using namespace std;
class A {
public:
int i; // l'attribut 1
int double_i(){ // méthode 1 typée
return 2*i; }
void affiche(){ //méthode 2 non typée
cout<<"le nombre i="<<i<<"et son double est ="<<double_i()<<endl; }
};
int main() {
A a1,a2; //création de deux objets a1 et a2 avant tous.
i=10; // erreur.
a1.i=10; a2.i=5; //ok
affiche(); //erreur
a1.affiche(); a2.affiche(); //ok
cout<<"le premier nombre i="<<a1.i<<"et son double est ="<<a1.double_i()<<endl;
cout<<"le deuxième nombre i="<<a2.i<<"et son double est ="<<a2.double_i()<<endl;
return 0; }
#include <iostream>
using namespace std;
class A {
public:
int i;
int double_i();
void affiche();
};
int main() {
A a1,a2; //création de deux objets a1 et a2 avant tous.
i=10; // erreur.
a1.i=10; a2.i=5; //ok
affiche(); //erreur
a1.affiche(); a2.affiche(); //ok
cout<<"le premier nombre i="<<a1.i<<"et son double est ="<<a1.double_i()<<endl;
cout<<"le deuxième nombre i="<<a2.i<<"et son double est ="<<a2.double_i()<<endl;
return 0; }
int A::double_i() { return 2*i; }
void A::affiche() { cout<<"le nombre i="<<i<<"et son double est ="<<double_i()<<endl; }
Devoir:
une méthode non typée appelé iniTialise(double xi, double yi) pour donner des valeurs
initiales à x et y.
une méthode non typée appelé depLace(double dx, double dy) pour déplacer les
coordonnées x et y d'un endroit à un autre.
une méthode typée (double) moDule() qui retourne le module d'un point dans l'espace.
une méthode typée (double) distAnce(Point autrepoint) qui retourne la distance entre un
point et un autre " d=sqrt((x-x)²+(y-y)²)".
une méthode non typée afficHe() qui dégage à l'écran les coordonnés d'un point.