Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

La notion d'objet

Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions.

L'apport principal du langage C++ par rapport au langage C est l'intégration du concept objet, afin d'en faire un langage orienté objet (LOO).
Pour comprendre clairement le concept d'objet, reportez-vous à la partie Programmation orientée objet !

Les classes en C++

Pour pouvoir manipuler des objets, il est essentiel de définir des classes, c'est-à-dire définir la structure d'un objet. Cette définition en C++ se fait de la manière suivante :

class Nom_de_la_classe {
	public :
	// Instructions permettant de définir la classe;

};

Nom_de_la_classe représente bien évidemment le type d'objet désigné par la classe ou du moins le nom que vous leur attribuez.
Le mot clé public: permet de définir le niveau de visibilité des éléments de la classe. Cela correspond au concept d'encapsulation, un des concepts majeurs de la programmation orientée objet.

Le point-virgule situé à la fin du bloc de définition de la classe est obligatoire.

Déclaration des données membres

Jusqu'ici notre classe est vide (elle est toutefois syntaxiquement correcte), c'est-à-dire qu'elle ne contient ni données (appelées données membres) ni traitements (fonctions appelées fonctions membres).

Les données membres sont des variables stockées au sein d'une classe. Elles doivent être précédées de leur type et d'une étiquette précisant leur portée, c'est-à-dire les classes ayant le droit d'y accéder.
Ces étiquettes sont au nombre de trois :

  • public
  • private
  • protected

Pour comprendre en détail ces étiquettes, reportez-vous au chapitre sur l'encapsulation.

Ainsi, une classe comportant trois données membres ressemble par exemple à ceci :

class Voiture {
	public :
		char Marque[32];

		float Vitesse;

		int Prix;

};

Déclaration des fonctions membres

Les données membres permettent de conserver des informations relatives à la classe, tandis que les fonctions membres représentent les traitements qu'il est possible de réaliser avec les objets instanciés de la classe. On parle généralement de fonctions membres ou méthodes pour désigner ces traitements.

Il existe deux façons de définir des fonctions membres :

  • En définissant le prototype et le corps de la fonction à l'intérieur de la classe en une opération
  • En définissant le prototype de la fonction à l'intérieur de la classe et le corps de la fonction à l'extérieur

C'est cette seconde solution qui est généralement utilisée. Ainsi, puisque l'on définit la fonction membre à l'extérieur de sa classe, il est nécessaire de préciser à quelle classe cette dernière fait partie. On utilise pour cela l'opérateur de résolution de portée (ORP), noté ::. Il suffit ainsi de faire précéder le nom de la fonction par l'ORP, suivi du nom de la classe pour lever toute ambiguïté (deux classes peuvent avoir des fonctions membres différentes portant le même nom...).

De la même façon que les données membres, la déclaration des fonctions membres doit précéder le prototype des fonctions à l'intérieur de la classe.

Voici donc la syntaxe de définition des fonctions membres :

class Nom_de_la_classe {
	private :
	// Instructions permettant de définir les données membres de la classe;

	public :
	// Instructions permettant de définir les fonctions membres de la classe;

	type_de_valeur_renvoyée Nom_de_la_fonction(type_du_parametre1,
										  type_du_parametre2,...);

};

type_de_valeur_renvoyée Nom_de_la_classe::Nom_de_la_fonction(parametre1,
															 parametre2,...){
// Instructions composant le corps de la fonction;

}

Etant donné que l'encapsulation doit permettre la protection des données membres (qui sont alors précédées de l'étiquette private ou protected), les fonctions membres doivent pouvoir servir d'interface pour manipuler les données membres. On place donc l'étiquette public devant les fonctions membres dédiées à la manipulation des données membres. Ce système permet de garantir l'intégrité des données membres. En effet, si l'utilisateur de la classe ne peut pas modifier les données membres directement, il est obligé d'utiliser l'interface (les fonctions membres) pour les modifier, ce qui peut permettre au créateur de la classe d'effectuer des contrôles...

Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « Les classes en langage C++ » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Langage C++ - Les pointeurs Comme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition... www.commentcamarche.net/contents/cpp/cpppoint.php3
Langage C++ - Les variables Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C++ sont typées, c'est-à-dire que les données contenues dans... www.commentcamarche.net/contents/cpp/cppvar.php3
Langage C++ - Les types de données Les types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître... www.commentcamarche.net/contents/cpp/cpptype.php3
[Langage C] C/C++ Erreur de segmentationQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux... www.commentcamarche.net/faq/sujet-4791-langage-c-c-c-erreur-de-segmentation
Les files en langage CLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un... www.commentcamarche.net/faq/sujet-8282-les-files-en-langage-c
Les piles en langage CLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage... www.commentcamarche.net/faq/sujet-8283-les-piles-en-langage-c
Exec en langage C (Résolu)Bonjour à tous. J'écris un programme en langage C permettant de créer un fichier de config (pour MRTG). Pour cela je dois utiliser la primitive "exec", la commande que je souhaite lancer ressemble à : snmpgetnext -c community IPadress OID. Comment "... www.commentcamarche.net/forum/affich-1623603-exec-en-langage-c
Couleur des texte en langage c (Résolu)Bonjours à tous, Je programme déjà depuis un petit temps en langage c. Seulement j'ai un petit problème, j'aimerais savoir quelle est l'instruction pour changer la couleur d'un texte mais je ne trouve pas de tutoriel. Si quelqu'un pouvait m'aider sa... www.commentcamarche.net/forum/affich-2622033-couleur-des-texte-en-langage-c
Langage C pointeurs, creation de liste. (Résolu)Bonjour a tous. Voila, je rencontre quelaues petits preoblemes en langage C. Le but est de creer des fiches afin de creer une listes les contenant. Il faut ensuite afficher ce que l on a entre dans chaque fiche, puis afficher enfin le nombre de fiches... www.commentcamarche.net/forum/affich-2170245-langage-c-pointeurs-creation-de-liste
Langage C - Les types de donnéesLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le... www.commentcamarche.net/contents/c/ctype.php3
Introduction au langage CPetite histoire du C Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie... www.commentcamarche.net/contents/c/cintro.php3
Langage C - Les chaînes de caractèresQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne... www.commentcamarche.net/contents/c/cstring.php3