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

📄 tutcpp_surdefop.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&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;Point p(1,2);</font></tt>
<br><tt><font color="#1A3251">&nbsp;p.Affiche();</font></tt>
<br><tt><font color="#1A3251">&nbsp;Point pp(3,4);</font></tt>
<br><tt><font color="#1A3251">&nbsp;pp.Affiche();</font></tt>
<br><tt><font color="#1A3251">&nbsp;Point ppp = p+pp;</font></tt>
<br><tt><font color="#1A3251">&nbsp;ppp.Affiche();</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">if</font><font color="#1A3251">(
p==pp )</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; "p==pp" &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; "p!=pp" &lt;&lt; endl;</font></tt>
<p><tt><font color="#1A3251">&nbsp;p = ppp;</font></tt>
<br><tt><font color="#1A3251">&nbsp;p.Affiche();</font></tt>
<br><tt><font color="#1A3251">&nbsp;pp = p-ppp;</font></tt>
<br><tt><font color="#1A3251">&nbsp;pp.Affiche();</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">if</font><font color="#1A3251">(
p==ppp )</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; "p==ppp" &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; "p!=ppp" &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>
</blockquote>
<a NAME="Op閞ateur d'affectation"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Op&eacute;rateur
d'affectation</font></font></font></b>
<blockquote><font color="#1A3251"><font face="Verdana">L'op&eacute;rateur
d'affectation "</font><b><tt><font size=+1>=</font></tt></b><font face="Verdana">"
est assez particulier. En effet, nous retrouvons le m&ecirc;me probl&egrave;me
que lors de la construction par recopie : il est toujours possible d'effectuer
une affectation entre deux objets (de m&ecirc;me type), mais que se passe-t-il
s'ils contiennent des pointeurs (cf. <i><a href="TutCpp_ConstrDestInit.html#Probl閙atique de recopie">probl&eacute;matique
de recopie</a></i>) ! C'est pourquoi il est souvent important d'impl&eacute;menter
ce type d'op&eacute;rateur.</font></font>
<br><font face="Verdana"><font color="#1A3251">Il n'est pas plus difficile
&agrave; mettre en oeuvre :</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>Vecteur</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">int</font><font color="#1A3251">
*pVecteur;</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">int</font><font color="#1A3251">
nTaille;</font></tt>
<p><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;Vecteur(</font><font color="#3333FF">int</font><font color="#1A3251">);</font></tt>
<br><tt><font color="#1A3251">&nbsp;Vecteur(</font><font color="#3333FF">const</font><font color="#1A3251">
Vecteur &amp;);</font></tt>
<br><tt><font color="#1A3251">&nbsp;~Vecteur();</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">int</font><font color="#1A3251">
GetAt(</font><font color="#3333FF">int</font><font color="#1A3251"> ind)</font></tt>
<br><tt><font color="#1A3251">&nbsp;{</font></tt>
<br><tt><font color="#1A3251">&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
ind>=0 &amp;&amp; ind&lt;nTaille )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
pVecteur[ind];</font></tt>
<br><tt><font color="#1A3251">&nbsp; </font><font color="#3333FF">else</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp; </font><font color="#3333FF">return</font><font color="#1A3251">
0;</font></tt>
<br><tt><font color="#1A3251">&nbsp;}</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">void</font><font color="#1A3251">
SetAt(</font><font color="#3333FF">int</font><font color="#1A3251"> ind,
</font><font color="#3333FF">int</font><font color="#1A3251">
val)</font></tt>
<br><tt><font color="#1A3251">&nbsp;{</font></tt>
<br><tt><font color="#1A3251">&nbsp; </font><font color="#3333FF">if</font><font color="#1A3251">(
ind>=0 &amp;&amp; ind&lt;nTaille )</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp; pVecteur[ind]=val;</font></tt>
<br><tt><font color="#1A3251">&nbsp;}</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">int</font><font color="#1A3251">
Size(){ </font><font color="#3333FF">return</font><font color="#1A3251">
nTaille; }</font></tt>
<br><tt><font color="#1A3251">&nbsp;Vecteur&amp; </font><font color="#3333FF">operator</font><font color="#1A3251">
=(</font><font color="#3333FF">const</font><font color="#1A3251"> Vecteur
&amp; v);</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<p><tt><font color="#1A3251">Vecteur::Vecteur(</font><font color="#3333FF">int</font><font color="#1A3251">
Taille)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;nTaille = Taille;</font></tt>
<br><tt><font color="#1A3251">&nbsp;pVecteur = </font><font color="#3333FF">newint</font><font color="#1A3251">[nTaille];</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#1A3251">Vecteur::Vecteur(</font><font color="#3333FF">const</font><font color="#1A3251">
Vecteur &amp; v)</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;nTaille = v.nTaille;</font></tt>
<br><tt><font color="#1A3251">&nbsp;pVecteur = </font><font color="#3333FF">newint</font><font color="#1A3251">[nTaille];&nbsp;</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">for</font><font color="#1A3251">(
</font><font color="#3333FF">int</font><font color="#1A3251">
i=0; i&lt;nTaille; i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp; pVecteur[i]=v.pVecteur[i];</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<br><tt><font color="#1A3251">Vecteur::~Vecteur()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">delete</font><font color="#1A3251">
pVecteur;</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<p><b><tt><font color="#1A3251">Vecteur&amp; Vecteur::</font><font color="#3333FF">operator</font><font color="#1A3251">
=(</font><font color="#3333FF">const</font><font color="#1A3251"> Vecteur
&amp; v)</font></tt></b>
<br><b><tt><font color="#1A3251">{</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;</font><i><font color="#006600">//
On v&eacute;rifie que les objets ne sont pas les m&ecirc;mes !</font></i></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">if</font><font color="#1A3251">(
</font><font color="#3333FF">this</font><font color="#1A3251">
!= &amp;v )</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;{</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp; </font><font color="#3333FF">delete</font><font color="#1A3251">
pVecteur; </font><i><font color="#006600">// Effacement du vecteur</font></i></tt></b>
<br><b><tt><font color="#1A3251">&nbsp; nTaille = v.nTaille;</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp; pVecteur = </font><font color="#3333FF">newint</font><font color="#1A3251">[nTaille];
</font><font color="#006600">//
Allocation</font></tt></b>
<p><b><tt><font color="#1A3251">&nbsp; </font><i><font color="#006600">//
Recopie des valeurs</font></i></tt></b>
<br><b><tt><font color="#1A3251">&nbsp; </font><font color="#3333FF">for</font><font color="#1A3251">(
</font><font color="#3333FF">int</font><font color="#1A3251">
i=0; i&lt;nTaille; i++ )</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;&nbsp; pVecteur[i]=v.pVecteur[i];</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;}</font></tt></b>
<br><b><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">return</font><font color="#1A3251">
*this;</font></tt></b>
<br><b><tt><font color="#1A3251">}</font></tt></b>
<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;Vecteur *v;</font></tt>
<br><tt><font color="#1A3251">&nbsp;v = </font><font color="#3333FF">new</font><font color="#1A3251">
Vecteur(10);</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">for</font><font color="#1A3251">(
</font><font color="#3333FF">int</font><font color="#1A3251">
i=0; i&lt;v->Size(); i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp; v->SetAt(i, i*i-i);</font></tt>
<p><tt><font color="#1A3251">&nbsp;Vecteur vv(5);</font></tt>
<br><tt><font color="#1A3251">&nbsp;vv = *v;</font></tt>
<br><tt><font color="#1A3251">&nbsp;vv.SetAt(0, 13);</font></tt>
<br><tt><font color="#1A3251">&nbsp;vv.SetAt(1, 13);</font></tt>
<br><tt><font color="#1A3251">&nbsp;vv.SetAt(2, 13);</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">for</font><font color="#1A3251">(
i=0; i&lt;v->Size(); i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; v->GetAt(i) &lt;&lt;
</font><font color="#CC6600">"
"</font><font color="#1A3251">;</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; endl;</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">for</font><font color="#1A3251">(
i=0; i&lt;vv.Size(); i++ )</font></tt>
<br><tt><font color="#1A3251">&nbsp; cout &lt;&lt; vv.GetAt(i) &lt;&lt;
</font><font color="#CC6600">"
"</font><font color="#1A3251">;</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; endl;</font></tt>
<p><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">delete</font><font color="#1A3251">
v;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">Cette fois-ci, nous rendons
par contre une r&eacute;f&eacute;rence sur l'objet, car nous devons rendre
la classe elle-m&ecirc;me et non une copie, comme vous pouvez le comprendre
!</font></font></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_ConstrDestInit.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>
Construction, destruction et ...</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>L'H&eacute;ritage&nbsp;</font></font></font></b><a href="TutCpp_Heritage.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 + -