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

📄 tutcpp_notionclasse.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<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">}</font></tt>
<br><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::Init(</font><font color="#3333FF">int</font><font color="#1A3251">
a)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Init(a,a);</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>
<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></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Deplace(a,a);</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#3333FF">void</font><font color="#1A3251"> Point::Affiche(char
*strMesg) </font><i><font color="#006600">// On ne rajoute pas le param&egrave;tre
par&nbsp;</font></i></tt>
<br><i><tt><font color="#006600">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// d&eacute;faut dans l'impl&eacute;mentation !</font></tt></i>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; strMesg
&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(1,2);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Deplace(4);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Affiche(</font><font color="#CC6600">"Le
point vaut "</font><font color="#1A3251">);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Init(10);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Affiche(</font><font color="#CC6600">"Le
point vaut desormais : "</font><font color="#1A3251">);</font></tt>
<p><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point pp;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; pp = p;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Deplace(12,13);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; pp.Deplace(5);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; p.Affiche(</font><font color="#CC6600">"Le
point p vaut "</font><font color="#1A3251">);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; pp.Affiche(</font><font color="#CC6600">"Le
point pp vaut "</font><font color="#1A3251">);</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Vous commencez &agrave; avoir
un programme un peu plus long...</font></font>
<br>&nbsp;
<p><b><font face="Verdana"><font color="#1A3251">Objets transmis en argument
d'une fonction membre</font></font></b>
<br><font color="#1A3251"><font face="Verdana">Nous pouvons maintenant
imaginer vouloir comparer deux points, afin de savoir s'ils sont &eacute;gaux.
Pour cela, nous allons mettre en oeuvre une m&eacute;thode "</font><tt><font size=+1>Coincide</font></tt><font face="Verdana">"
qui renvoie "1" lorsque les coordonn&eacute;es des deux points sont &eacute;gales
:</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><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">int</font><font color="#1A3251">
Coincide(Point p);</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<br><tt><font color="#3333FF">int</font><font color="#1A3251"> Point::Coincide(Point
p)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
(p.x==x) &amp;&amp; (p.y==y) )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
1;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
0;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Cette partie de programme
fonctionne parfaitement, mais elle poss&egrave;de un inconv&eacute;nient
majeur : la <b>passage de param&egrave;tre par valeur</b>, ce qui implique
une "duplication" de l'objet d'origine. Cela n'est bien s&ucirc;r pas tr&egrave;s
efficace.</font></font>
<br><font face="Verdana"><font color="#1A3251">La solution qui vous vient
&agrave; l'esprit dans un premier temps est probablement de passer par
un pointeur. Cette solution est possible, mais n'est pas la meilleure,
dans la mesure o&ugrave; nous savons fort bien que ces pointeurs sont toujours
sources d'erreurs (lorsqu'ils sont non initialis&eacute;s, par exemple).</font></font>
<br><font face="Verdana"><font color="#1A3251">La vraie solution offerte
par le C++ est de passer par des r&eacute;f&eacute;rences. Avec ce type
de passage de param&egrave;tre, aucune erreur est possible puisque l'objet
&agrave; passer doit d&eacute;j&agrave; exister (&ecirc;tre instanci&eacute;).
En plus, les r&eacute;f&eacute;rences offrent une simplification d'&eacute;criture,
par rapport aux pointeurs :</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">&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><font color="#3333FF">int</font><font color="#1A3251">
a=0, </font><font color="#3333FF">int</font><font color="#1A3251"> b=0){
x=a; y=b; }</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">int</font><font color="#1A3251">
Coincide(Point &amp;);</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<br><tt><font color="#3333FF">int</font><font color="#1A3251"> Point::Coincide(Point
&amp; p)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
(p.x==x) &amp;&amp; (p.y==y) )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
1;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
0;</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(2,0);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; Point pp(2);</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
p.Coincide(pp) )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cout &lt;&lt; </font><font color="#CC6600">"p et pp coincident !"</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">(
pp.Coincide(p) )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cout &lt;&lt; </font><font color="#CC6600">"pp et p coincident !"</font><font color="#1A3251">
&lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>
</blockquote>
</td>
</tr>
</table></center>

<br>&nbsp;
<p><img SRC="../Images/TutorialCPP_Sepa.gif" ALT="S閜arateur" NOSAVE height=20 width=100%>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=3 WIDTH="95%" >
<tr>
<td><a href="TutCpp_BasesCpp.html"><img SRC="../Images/Previous.gif" ALT="Pr閏閐ent" NOSAVE BORDER=0 height=54 width=54 align=ABSCENTER></a><b><font face="Verdana"><font color="#407AC3"><font size=-1>
Bases du C++</font></font></font></b></td>

<td>
<center><a href="index.html"><img SRC="../Images/Sommaire.gif" ALT="Sommaire" NOSAVE BORDER=0 height=50 width=100></a></center>
</td>

<td>
<div align=right><b><font face="Verdana"><font color="#407AC3"><font size=-1>Construction,
destruction et ...</font></font></font></b><a href="TutCpp_ConstrDestInit.html"><img SRC="../Images/Next.gif" ALT="Suivant" NOSAVE BORDER=0 height=54 width=54 align=ABSCENTER></a></div>
</td>
</tr>

<tr>
<td><font face="Verdana"><font color="#407AC3"><font size=-2>Pr&eacute;c&eacute;dent</font></font></font></td>

<td>
<center><b><i><font face="Verdana"><font color="#407AC3"><font size=-2>Tutorial
C++ &eacute;crit par Gwena&euml;l Brunet</font></font></font></i></b>
<br><font face="Verdana"><font color="#407AC3"><font size=-2>Vous pouvez
lui envoyer un <b><a href="mailto:brunet@traezh.enst-bretagne.fr">mail</a></b></font></font></font></center>
</td>

<td>
<div align=right><font face="Verdana"><font color="#407AC3"><font size=-2>Suivant</font></font></font></div>
</td>
</tr>
</table></center>

</body>
</html>

⌨️ 快捷键说明

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