⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tutcpp_notionclasse.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Gwena雔 Brunet">
   <meta name="GENERATOR" content="Mozilla/4.7 [fr] (WinNT; I) [Netscape]">
   <meta name="Description" content="Tutorial C++ : Notion de classe">
   <title>La notion de classe</title>
</head>
<body text="#000000" bgcolor="#E2E2F1" link="#0000FF" vlink="#800080" alink="#FF0080">
&nbsp;
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=2 WIDTH="95%" BGCOLOR="#F7F2F6" >
<tr>
<td WIDTH="100"><img SRC="../Images/Tutorial_LogoMini.jpg" NOSAVE height=120 width=120 align=ABSCENTER></td>

<td><b><font face="Verdana"><font color="#407AC3"><font size=+3>La notion
de Classe</font></font></font></b>
<blockquote><a href="#Ecriture d'une premi鑢e classe"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Ecriture d'une premi&egrave;re classe</font></font></font>
<br><a href="#Utilisation de la classe"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Utilisation de la classe</font></font></font>
<br><a href="#Constructeur et Destructeur"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Constructeur et destructeur</font></font></font>
<br><a href="#Les Fonctions membre"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Les fonctions membre</font></font></font></blockquote>
</td>
</tr>
</table></center>

<br>&nbsp;
<br>&nbsp;
<center><table BORDER=0 COLS=1 WIDTH="80%" >
<tr>
<td><font face="Verdana"><font color="#1A3251">Nous allons enfin parler,
dans ce chapitre, de <b>Programmation Orient&eacute;e Objet</b>. Nous allons
commencer par comprendre le m&eacute;canisme des <b>classes</b>.</font></font>
<br>&nbsp;
<p><a NAME="Ecriture d'une premi鑢e classe"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Ecriture
d'une premi&egrave;re classe</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Une classe est en
quelque sorte une structure complexe qui permet <b>l'encapsulation de donn&eacute;es</b>.</font></font>
<br><font face="Verdana"><font color="#1A3251">Une classe est compos&eacute;e
de donn&eacute;es et de m&eacute;thodes. Lorsque l'encapsulation des donn&eacute;es
est parfaite, seules les (certaines) m&eacute;thodes sont accessibles.
Ceci &eacute;vite en principe &agrave; l'utilisateur de la classe, de se
soucier de son fonctionnement et de faire des erreurs en changeant directement
la valeur de certaines donn&eacute;es.</font></font>
<br><font face="Verdana"><font color="#1A3251">Prenons un exemple concret
et simple : l'&eacute;criture d'une classe <b>Point</b>. Cet exemple va
nous suivre tout au long de ce chapitre.</font></font>
<p><font face="Verdana"><font color="#1A3251">En <b>C</b>, nous aurions
fait une structure comme suit :</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="80%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#3333FF">struct</font><font color="#1A3251"> Point</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
x;&nbsp;&nbsp;&nbsp;&nbsp; </font><i><font color="#006600">// Abscisse
du point</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
y;&nbsp;&nbsp;&nbsp;&nbsp; </font><i><font color="#006600">// Ordonn&eacute;e</font></i></tt>
<br><tt><font color="#1A3251">};</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">La d&eacute;claration pr&eacute;c&eacute;dente
fonctionne parfaitement en C++. Mais nous aimerions rajouter des fonctions
qui sont fortement li&eacute;es &agrave; ces donn&eacute;es, comme l'affichage
d'un point, son d&eacute;placement, etc. Voici une solution en <b>C++</b>
:</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="80%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#3333FF">class</font><font color="#1A3251"> <b>Point</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
x;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
y;</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void
</font><font color="#1A3251">Init(</font><font color="#3333FF">int</font><font color="#1A3251">,
</font><font color="#3333FF">int</font><font color="#1A3251">);
</font><i><font color="#006600">//
Initialisation d'un point</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Deplace(</font><font color="#3333FF">int</font><font color="#1A3251">,
</font><font color="#3333FF">int</font><font color="#1A3251">);
</font><i><font color="#006600">//
D&eacute;placement du point</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Affiche();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><i><font color="#006600">//
Affichage du point</font></i></tt>
<br><tt><font color="#1A3251">};</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Vous remarquerez tout de
suite plusieurs &eacute;l&eacute;ments :</font></font>
<blockquote>
<li>
<b><tt><font color="#3333FF"><font size=+1>class</font></font></tt></b><font color="#1A3251"><font face="Verdana">
: le "</font><tt><font size=+1>struct</font></tt><font face="Verdana">"
a &eacute;t&eacute; remplac&eacute;, m&ecirc;me si dans cet exemple pr&eacute;cis,
il aurait pu &ecirc;tre conserv&eacute;. Mais nous ne rentrerons pas dans
les d&eacute;tails.</font></font></li>

<li>
<b><tt><font color="#3333FF"><font size=+1>public</font></font></tt></b><font face="Verdana"><font color="#1A3251">
: le terme public signifie que tous les membres qui suivent (donn&eacute;es
comme m&eacute;thodes) sont accessibles de l'ext&eacute;rieur de la classe.
Nous verrons les diff&eacute;rentes possibilit&eacute;s plus tard.</font></font></li>

<li>
<font color="#1A3251"><font face="Verdana">L'ajout des fonctions (ou plut&ocirc;t
m&eacute;thodes puisqu'elles font partie de la classe) "</font><b><tt><font size=+1>Init</font></tt></b><font face="Verdana">",
"</font><b><tt><font size=+1>Deplace</font></tt></b><font face="Verdana">"
et "</font><b><tt><font size=+1>Affiche</font></tt></b><font face="Verdana">".
Elles permettent respectivement d'initialiser un point, de le d&eacute;placer
(addition de coordonn&eacute;es) et de l'afficher (contenu des variables
</font><tt><font size=+1>x</font></tt><font face="Verdana">
et </font><tt><font size=+1>y</font></tt><font face="Verdana">).</font></font></li>
</blockquote>
</blockquote>

<p><br><a NAME="Utilisation de la classe"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Utilisation
de la classe</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Voici maintenant
un programme complet pour mettre en application tout ceci :</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="80%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#3333FF">#include</font><font color="#1A3251"> &lt;iostream.h></font></tt>
<p><tt><font color="#3333FF">class</font><font color="#1A3251"> <b>Point</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#3333FF">&nbsp;&nbsp;&nbsp;&nbsp; int</font><font color="#1A3251">
x;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
y;</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Init(</font><font color="#3333FF">int</font><font color="#1A3251"> a, </font><font color="#3333FF">int</font><font color="#1A3251">
b){ x = a; y = b; }</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Deplace(</font><font color="#3333FF">int</font><font color="#1A3251"> a,
</font><font color="#3333FF">int</font><font color="#1A3251">
b){ x += a; y += b; }</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Affiche(){ cout &lt;&lt; x &lt;&lt; </font><font color="#CC6600">", "</font><font color="#1A3251">
&lt;&lt; y &lt;&lt; endl; }</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<p><tt><font color="#3333FF">void</font><font color="#1A3251"> main()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point p;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Init(3,4);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Affiche();</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Deplace(4,6);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Affiche();</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Les m&eacute;thodes de la
classe <i>Point</i> sont impl&eacute;ment&eacute;es dans la classe m&ecirc;me.
Ceci fonctionne tr&egrave;s bien, mais devient bien entendu assez lourd
lorsque le code est plus long. C'est pourquoi il vaut mieux placer la d&eacute;claration
seulement, au sein de la classe. Notre code devient alors :</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="80%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#3333FF">#include</font><font color="#1A3251"> &lt;iostream.h></font></tt>
<p><tt><font color="#3333FF">class</font><font color="#1A3251"> <b>Point</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#3333FF">&nbsp;&nbsp;&nbsp;&nbsp; int</font><font color="#1A3251">
x;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
y;</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Init(</font><font color="#3333FF">int</font><font color="#1A3251"> a, </font><font color="#3333FF">int</font><font color="#1A3251">
b);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Deplace(</font><font color="#3333FF">int</font><font color="#1A3251"> a,
</font><font color="#3333FF">int</font><font color="#1A3251">
b);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Affiche();</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<p><tt><font color="#3333FF">void</font><font color="#1A3251"> Point::Init(</font><font color="#3333FF">int</font><font color="#1A3251">
a, </font><font color="#3333FF">int</font><font color="#1A3251"> b)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; x = a;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; y = b;</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#3333FF">void</font><font color="#1A3251"> Point::Deplace(</font><font color="#3333FF">int</font><font color="#1A3251">
a, </font><font color="#3333FF">int</font><font color="#1A3251"> b)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; x += a;</font></tt>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -