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

📄 tutcpp_notionclasse.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<br><tt><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="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point();</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point(int, int);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; ~Point(); </font><i><font color="#006600">//
Destructeur de la classe Point</font></i></tt>
<br><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></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Dans notre cas de classe
<i>Point</i>,le
destructeur a peu d'utilit&eacute;. On pourrait &agrave; la rigueur placer
une instruction permettant de tracer la destruction. En revanche, lorsqu'une
classe poss&egrave;de par exemple des pointeurs comme donn&eacute;es membre,
il est possible de d&eacute;sallouer la m&eacute;moire &agrave; cet endroit.</font></font>
<br><font face="Verdana"><font color="#1A3251">Un exemple :</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>Test</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#3333FF">&nbsp;&nbsp;&nbsp;&nbsp; int</font><font color="#1A3251">
nSize;</font></tt>
<p><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><i><font color="#006600">&nbsp;&nbsp;&nbsp;
// pas d'encapsulation pour ce membre.</font></i></tt>
<br><i><tt><font color="#006600">&nbsp;&nbsp;&nbsp;&nbsp; // Ca n'est pas
tr&egrave;s bon, mais c'est juste pour l'exemple.</font></tt></i>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
*pArray;</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Test(</font><font color="#3333FF">int</font><font color="#1A3251">
n);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; ~Test();</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
GetSize(){ </font><font color="#3333FF">return</font><font color="#1A3251">
nSize; }</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<br><tt><font color="#1A3251">Test::Test(</font><font color="#3333FF">int</font><font color="#1A3251">
n)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; </font><font color="#CC6600">"--
Constructeur --"</font><font color="#1A3251"> &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; nSize = n;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; pArray = </font><font color="#3333FF">new
int</font><font color="#1A3251">[nSize];</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#1A3251">Test::~Test()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; </font><font color="#CC6600">"--
Destructeur --"</font><font color="#1A3251"> &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
pArray )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">delete</font><font color="#1A3251">
[]pArray;</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; Test t(5);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">for</font><font color="#1A3251">(
</font><font color="#3333FF">int</font><font color="#1A3251">
i=0; i&lt;t.GetSize(); i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; {</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t.pArray[i]=i;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; }</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Test *t2; </font><i><font color="#006600">//
Pointeur d'objet</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; t2 = </font><font color="#3333FF">new</font><font color="#1A3251">
Test(10);&nbsp; </font><i><font color="#006600">// Allocation dynamique</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">for</font><font color="#1A3251">(
i=0; i&lt;t2->GetSize(); i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; {</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
t2->pArray[i]=i;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; }</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">delete</font><font color="#1A3251">
t2; </font><font color="#006600">// Destruction explicite</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>
</blockquote>
<a NAME="Les Fonctions membre"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Les
Fonctions membre</font></font></font></b>
<blockquote><b><font face="Verdana"><font color="#1A3251">Surd&eacute;finition</font></font></b>
<br><font face="Verdana"><font color="#1A3251">Nous avons vu dans le chapitre
pr&eacute;c&eacute;dent qu'il &eacute;tait possible de d&eacute;finir plusieurs
constructeurs diff&eacute;rents. Nous pouvons &eacute;tendre cette possibilit&eacute;
de <i>surd&eacute;finition</i> &agrave; d'autres m&eacute;thodes que le
constructeur (sauf le destructeur !) :</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">&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="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point();</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point(int, int);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; ~Point();</font></tt>
<br><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">
Init(</font><font color="#3333FF">int</font><font color="#1A3251"> a);
</font><i><font color="#006600">//
Initialisation avec une m&ecirc;me valeur</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"> 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></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">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Affiche(char* strMesg); </font><i><font color="#006600">// Affichage avec
un message</font></i></tt>
<br><tt><font color="#1A3251">};</font></tt></td>
</tr>
</table>

<p><b><font face="Verdana"><font color="#1A3251">Arguments par d&eacute;faut</font></font></b>
<br><font color="#1A3251"><font face="Verdana">Tout comme une fonction
C++ classique, il est possible de d&eacute;finir des <i>arguments par d&eacute;faut</i>.
Ceux-ci permettent &agrave; l'utilisateur de ne pas renseigner certains
param&egrave;tres. Par exemple, imaginons que l'initialisation par d&eacute;faut
d'un point soit </font><tt><font size=+1>(0,0)</font></tt><font face="Verdana">.
Nous pouvons donc changer la m&eacute;thode </font><b><tt><font size=+1>Init</font></tt></b><font face="Verdana">,
de sorte qu'elle devienne :</font></font>
<p><tt><font size=+1><font color="#3333FF">void</font><font color="#1A3251">
Init(</font><font color="#3333FF">int</font><font color="#1A3251"> a=0);</font></font></tt>
<p><font face="Verdana"><font color="#1A3251">D&eacute;sormais, quand l'utilisateur
appelle cette m&eacute;thode, il a la possibilit&eacute; de ne pas donner
de param&egrave;tre, signifiant qu'il veut initialiser son point &agrave;
0. De m&ecirc;me :</font></font>
<p><tt><font size=+1><font color="#3333FF">void</font><font color="#1A3251">
Affiche(char* strMesg="");</font></font></tt>
<p><font face="Verdana"><font color="#1A3251">Permet de remplacer l'impl&eacute;mentation
de deux m&eacute;thodes par une seule, mais qui prend en compte le non-renseignement
du param&egrave;tre. Notre programme devient donc :</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="85%" 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">&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="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point();</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point(</font><font color="#3333FF">int</font><font color="#1A3251">,
</font><font color="#3333FF">int</font><font color="#1A3251">);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; ~Point();</font></tt>
<br><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">
Init(</font><font color="#3333FF">int</font><font color="#1A3251"> a=0);</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">
Deplace(</font><font color="#3333FF">int</font><font color="#1A3251"> a=0);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
Affiche(char* strMesg="");</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<p><tt><font color="#1A3251">Point::Point()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; </font><font color="#CC6600">"--Constructeur
par defaut--"</font><font color="#1A3251"> &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#1A3251">Point::Point(int a, int b)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; </font><font color="#CC6600">"--Constructeur
(a,b)--"</font><font color="#1A3251"> &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Init(a,b);</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#1A3251">Point::~Point()</font></tt>

⌨️ 快捷键说明

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