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

📄 tutcpp_heritage.html

📁 ce fichier est un tutorial de c++.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!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++ : L'H閞itage">
   <title>L'H&eacute;ritage</title>
</head>
<body text="#000000" bgcolor="#E2E2F1" link="#0000FF" vlink="#800080" alink="#FF0080">
<script language="JavaScript">
<!-- begin script
function VersionNavigateur(Netscape, Explorer) {
  if ((navigator.appVersion.substring(0,3) >= Netscape && navigator.appName == 'Netscape') ||      
      (navigator.appVersion.substring(0,3) >= Explorer && navigator.appName.substring(0,9) == 'Microsoft'))
    return true;
else return false;
}
//  end script -->
</script>

<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>L'H&eacute;ritage</font></font></font></b>
<blockquote><a href="TutCpp_Heritage.html#D閒inition et mise en oeuvre"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
D&eacute;finition et mise en oeuvre</font></font></font>
<br><a href="TutCpp_Heritage.html#Utilisation des membres de la classe de base"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Utilisation des membres de la classe de base</font></font></font>
<br><a href="TutCpp_Heritage.html#Red閒inition des fonctions membre et appel des constructeurs"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Red&eacute;finition des fonctions membre et appel des constructeurs</font></font></font>
<br><a href="TutCpp_Heritage.html#Statuts de d閞ivation"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
"Statuts" de d&eacute;rivation</font></font></font>
<br><a href="TutCpp_Heritage.html#Notion d'h閞itage : 閘argissement"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Notion d'h&eacute;ritage : &eacute;largissement</font></font></font></blockquote>
</td>
</tr>
</table></center>

<br>&nbsp;
<center><table BORDER=0 COLS=1 WIDTH="80%" >
<tr>
<td><a NAME="D閒inition et mise en oeuvre"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>D&eacute;finition
et mise en oeuvre</font></font></font></b>
<blockquote><b><font face="Verdana"><font color="#1A3251">D&eacute;finition</font></font></b>
<br><font face="Verdana"><font color="#1A3251">Nous avons vu dans le premier
chapitre que l'<b>h&eacute;ritage</b> est en C++, et plus g&eacute;n&eacute;ralement
en P.O.O., un concept fondamental.</font></font>
<br><font face="Verdana"><font color="#1A3251">En effet, il permet de d&eacute;finir
une nouvelle classe "<i>fille</i>", qui h&eacute;ritera donc des caract&eacute;ristiques
de la classe de base. Le terme "<i>caract&eacute;ristiques"</i> inclut
en fait l'ensemble de la d&eacute;finition de cette classe m&egrave;re.</font></font>
<br><font face="Verdana"><font color="#1A3251">D'un point de vue pratique,
il faut savoir qu'il n'est pas n&eacute;cessaire &agrave; la classe fille
de conna&icirc;tre l'impl&eacute;mentation de la base : sa d&eacute;finition
suffit. Ceci sera mis en application. De plus, on peut h&eacute;riter plusieurs
fois de la m&ecirc;me classe, et une classe fille pourra &eacute;galement
servir de base pour une autre. Il est alors possible de d&eacute;crire
un v&eacute;ritable "<b>arbre d'h&eacute;ritage</b>".</font></font>
<p><b><font face="Verdana"><font color="#1A3251">Mise en oeuvre</font></font></b>
<br><font face="Verdana"><font color="#1A3251">Mettre en oeuvre la technique
de l'h&eacute;ritage est assez en simple en C++. Le plus difficile reste
en fait la <b>conception</b>, qui n&eacute;cessite un gros travail afin
de bien s&eacute;parer les diff&eacute;rentes classes.</font></font>
<p><font face="Verdana"><font color="#1A3251">Le premier exemple qui nous
permettra de r&eacute;aliser notre premier h&eacute;ritage, propose de
d&eacute;finir une classe <b>PointCol</b> qui h&eacute;rite de <b>Point</b>.
S&eacute;mantiquement parlant, <i>PointCol</i> est un <i>Point</i> auquel
on rajoute la gestion de la couleur. Nous obtenons 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>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;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byRed;&nbsp;&nbsp; </font><i><font color="#006600">//
La composante rouge</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byGreen; </font><i><font color="#006600">//
La composante verte</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byBlue;&nbsp; </font><i><font color="#006600">//
La composante bleue</font></i></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><i><font color="#006600">//
Coloration d'un point</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; </font><font color="#3333FF">void</font><font color="#1A3251">
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">&nbsp;&nbsp;&nbsp;&nbsp; {</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
byRed = R;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
byGreen = G;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
byBlue = B;</font></tt>
<br><tt><font color="#1A3251">&nbsp;&nbsp;&nbsp;&nbsp; }</font></tt>
<br><tt><font color="#1A3251">};</font></tt></td>
</tr>
</table>
<font color="#1A3251"><font face="Verdana">Vous pouvez remarquer la notation
"</font><tt><font size=+1>: </font></tt></font><tt><font size=+1><font color="#3333FF">public
</font><font color="#1A3251"><b>Point</b></font></font></tt><font face="Verdana"><font color="#1A3251">".
Ceci signifie que notre point color&eacute; h&eacute;rite <b>publiquement</b>
de <i>Point</i>, c'est-&agrave;-dire que <b>tous les membres publics de
<i>Point</i> seront membres publics de <i>PointCol</i></b>.</font></font>
<br><font face="Verdana"><font color="#1A3251">En d&eacute;clarant un objet
de type <i>PointCol</i>, il est ainsi possible d'acc&eacute;der aux membres
publics de <i>PointCol</i>, donc, mais &eacute;galement de <i>Point</i>.
C'est une notion essentielle de la P.O.O. !</font></font>
<p><font face="Verdana"><font color="#1A3251">Pour mettre en application
notre exemple, nous allons utiliser la classe Point qui suit. Nous allons
pour la premi&egrave;re fois faire cel&agrave; dans les "r&egrave;gles
de l'art", en s&eacute;parant physiquement la d&eacute;finition de l'impl&eacute;mentation
(un fichier "<b>.h</b>" et un fichier "<b>.cpp</b>").</font></font>
<p><font face="Verdana"><font color="#1A3251">Fichier <b>Point.h</b> :</font></font>
<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;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></tt>
<p><tt><font color="#1A3251">&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;</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 face="Verdana"><font color="#1A3251">Fichier <b>Point.cpp</b>
:</font></font>
<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>
<br><tt><font color="#3333FF">#include </font><font color="#1A3251">"Point.h"</font></tt>
<br><tt><font color="#3333FF">void</font><font color="#1A3251"> Point::Affiche()</font></tt>
<br><tt><font color="#1A3251">{</font></tt>
<br><tt><font color="#1A3251">&nbsp;cout &lt;&lt; </font><font color="#3333FF">this</font><font color="#1A3251">
&lt;&lt; "->" &lt;&lt; x &lt;&lt; ", " &lt;&lt; y &lt;&lt; endl;</font></tt>
<br><tt><font color="#1A3251">}</font></tt></td>
</tr>
</table>

<p><font color="#1A3251"><font face="Verdana">Vous pouvez maintenant rajouter
le fichier </font><tt><font size=+1>main.cpp</font></tt><font face="Verdana">
suivant :</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">"Point.h"</font></tt>
<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;&nbsp;&nbsp; </font><i><font color="#006600">//
La composante rouge</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byGreen; </font><i><font color="#006600">//
La composante verte</font></i></tt>
<br><tt><font color="#1A3251">&nbsp;</font><font color="#3333FF">unsigned
char</font><font color="#1A3251"> byBlue;&nbsp; </font><i><font color="#006600">//
La composante bleue</font></i></tt>
<br><tt><font color="#3333FF">public</font><font color="#1A3251"> :</font></tt>

⌨️ 快捷键说明

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