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

📄 tutcpp_heritage.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<p><tt><font color="#3333FF">class</font><font color="#1A3251"> <b>PointCol
</b>:
</font><font color="#3333FF">public
</font><b><font color="#1A3251">Point</font></b></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byRed;</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byGreen;</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byBlue;</font></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;PointCol( </font><font color="#3333FF">int</font><font color="#1A3251">,
</font><font color="#3333FF">int</font><font color="#1A3251">,
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251">,
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251">,
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> );</font></tt>
<p><tt><font color="#3333FF">&nbsp;void</font><font color="#1A3251"> Colore(
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251">, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251">, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> );</font></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">void</font><font color="#1A3251">
AfficheCol();</font></tt>
<br><tt><font color="#1A3251">};</font></tt>
<p><tt><font color="#1A3251">PointCol::PointCol( </font><font color="#3333FF">int</font><font color="#1A3251">
Abs, </font><font color="#3333FF">int</font><font color="#1A3251"> Ord,
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> R, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> G, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> B) : <b>Point(Abs, Ord)</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;byRed = R;</font></tt>
<br><tt><font color="#1A3251">&nbsp;byGreen = G;</font></tt>
<br><tt><font color="#1A3251">&nbsp;byBlue = B;</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<p><tt><font color="#3333FF">void</font><font color="#1A3251"> PointCol::Colore(
</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> R, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> G, </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> B )</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;byRed = R;</font></tt>
<br><tt><font color="#1A3251">&nbsp;byGreen = G;</font></tt>
<br><tt><font color="#1A3251">&nbsp;byBlue = B;</font></tt>
<br><tt><font color="#1A3251">}</font></tt>
<p><tt><font color="#3333FF">void</font><font color="#1A3251"> PointCol::AfficheCol()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;Point::Affiche();</font></tt>
<br><i><tt><font color="#006600">&nbsp;// Notez le "<b>cast</b>" en "<b>int</b>"
des composantes n&eacute;cessaire, sinon le</font></tt></i>
<br><i><tt><font color="#006600">&nbsp;// compilateur prend les valeurs
(<b>char</b>) pour des caract&egrave;res...</font></tt></i>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; "Couleur : RGB(" &lt;&lt;
(</font><font color="#3333FF">int</font><font color="#1A3251">)byRed &lt;&lt;
"," &lt;&lt; (</font><font color="#3333FF">int</font><font color="#1A3251">)byGreen;</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; "," &lt;&lt; (</font><font color="#3333FF">int</font><font color="#1A3251">)byBlue
&lt;&lt; ")." &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font color="#1A3251"><font face="Verdana">Le r&eacute;sultat est satisfaisant,
mais un appel &agrave; la m&eacute;thode </font><tt><font size=+1>Affiche</font></tt><font face="Verdana">
de <i>Point</i> est peut-&ecirc;tre fastidieux, d'autant plus qu'il pourrait
&ecirc;tre int&eacute;ressant d'avoir acc&egrave;s aux coordonn&eacute;es
du ponit, directement.</font></font>
<br><font color="#1A3251"><font face="Verdana">Ceci n'est pas possible
! Si vous essayez, le compilateur vous donnera une erreur de type : </font><b><tt>cannot
access private member declared in class 'Point'</tt></b><font face="Verdana">.
Ceci vient du fait que les membres </font><tt><font size=+1>x</font></tt><font face="Verdana">
et </font><tt><font size=+1>y</font></tt><font face="Verdana"> de <i>Point</i>
sont priv&eacute;s.</font></font>
<br>&nbsp;</blockquote>
<a NAME="Statuts de d閞ivation"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>"Statuts"
de d&eacute;rivation</font></font></font></b>
<blockquote><font color="#1A3251"><font face="Verdana">La solution &agrave;
ce probl&egrave;me permet de laisser les membres inaccessibles aux utilisateurs
de la classe, mais pas des classes qui en h&eacute;ritent. Il suffit de
remplacer le "</font><b><tt><font size=+1>private</font></tt></b><font face="Verdana">"
par "</font><b><tt><font size=+1>protected</font></tt></b><font face="Verdana">".
Notre classe <i>Point</i> 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">class</font><font color="#1A3251"> <b>Point</b></font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#3333FF">protected</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#3333FF">&nbsp;int</font><font color="#1A3251"> x;</font></tt>
<br><tt><font color="#3333FF">&nbsp;int</font><font color="#1A3251"> y;</font></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;Point(</font><font color="#3333FF">int</font><font color="#1A3251">
abs, </font><font color="#3333FF">int</font><font color="#1A3251"> ord){
x=abs; y=ord; }</font></tt>
<p><tt><font color="#1A3251">&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;</font><font color="#3333FF">void</font><font color="#1A3251">
Affiche();</font></tt>
<br><tt><font color="#1A3251">};</font></tt></td>
</tr>
</table>

<p><font color="#1A3251"><font face="Verdana">Et notre m&eacute;thode </font><tt><font size=+1>AfficheCol</font></tt><font face="Verdana">
:</font></font>
<br>&nbsp;
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="90%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#3333FF">void</font><font color="#1A3251"> PointCol::AfficheCol()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; "Point (" &lt;&lt; x
&lt;&lt; ", "&lt;&lt; y &lt;&lt; ") ";</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; "de couleur : RGB(" &lt;&lt;
(</font><font color="#3333FF">int</font><font color="#1A3251">)byRed &lt;&lt;
"," &lt;&lt; (</font><font color="#3333FF">int</font><font color="#1A3251">)byGreen;</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; "," &lt;&lt; (</font><font color="#3333FF">int</font><font color="#1A3251">)byBlue
&lt;&lt; ")." &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font face="Verdana"><font color="#1A3251">L'int&eacute;r&ecirc;t du
statut <b>prot&eacute;g&eacute;</b> est donc double puisque les donn&eacute;es
se retrouvent inaccessibles pour l'ext&eacute;rieur, ce qui pr&eacute;serve
l'encapsulation des donn&eacute;es de la classe, mais contre sont toujours
utilisables pour d'&eacute;ventuels h&eacute;ritages.</font></font>
<br>&nbsp;</blockquote>
<a NAME="Notion d'h閞itage : 閘argissement"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Notion
d'h&eacute;ritage : &eacute;largissement</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Il est possible
d'&eacute;tendre la notion d'h&eacute;ritage &agrave; plusieurs classes
: un v&eacute;ritable arbre peut-&ecirc;tre cr&eacute;&eacute;, par exemple
une classe C qui h&eacute;riterait de A et B (h&eacute;ritage multiple).
Nous n'aborderons pas ces fonctionnalit&eacute;s dans ce tutorial, mais
vous pouvez consulter un livre plus complet abordera cela.</font></font></blockquote>
</td>
</tr>
</table></center>

<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_SurdefOp.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>
Surd&eacute;finition d'op&eacute;rateur</font></font></font></b></td>

<td>
<center><a href="index.html" onmouseover="if (VersionNavigateur(3.0,4.0)) Sommaire.src='../Images/Sommaire_On.gif' " onmouseout="Sommaire.src='../Images/Sommaire.gif'"><img SRC="../Images/Sommaire.gif" NAME="Sommaire" ALT="Sommaire" NOSAVE BORDER=0 onload="tempImg=new Image(0,0); tempImg.src='Sommaire_On.gif'" height=50 width=100></a></center>
</td>

<td>
<div align=right><b><font face="Verdana"><font color="#407AC3"><font size=-1>Fonctions
Virtuelles&nbsp;</font></font></font></b><a href="TutCpp_FoncVir.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 + -