📄 tutcpp_presentgale.html
字号:
<!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.5 [fr] (WinNT; I) [Netscape]">
<meta name="Description" content="Tutorial C++ : Pr閟entation g閚閞ale du C++">
<title>Présentation Générale du C++</title>
</head>
<body text="#000000" bgcolor="#E2E2F1" link="#0000FF" vlink="#800080" alink="#FF0080">
<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>Présentation
Générale</font></font></font></b>
<blockquote><a href="#G閚閞alit閟"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Généralités</font></font></font>
<br><a href="#Programmation Orient閑 Objet"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
La programmation Orientée Objet (POO)</font></font></font>
<br><a href="#Diff閞ences entre C et C++"><img SRC="../Images/Puce2.gif" NOSAVE BORDER=0 height=12 width=12></a><font face="Verdana"><font color="#1F3D61"><font size=-1>
Les différences entre C et C++</font></font></font></blockquote>
</td>
</tr>
</table></center>
<br>
<br>
<center><table BORDER=0 COLS=1 WIDTH="80%" >
<tr>
<td><a NAME="G閚閞alit閟"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Généralités</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Puisque ça
n'est pas foncièrement utile, je vous fais grâce de l'historique
du langage C++. Vous devez juste savoir, éventuellement, qu'il a
été conçu par <b>Bjarne Stroustrup</b>, ce qui aide
pour trouver l'excellente bible du C++, écrite par lui-même.</font></font>
<p><font face="Verdana"><font color="#1A3251">Pour commencer cette présentation,
parlons de quelques généralités, et d'abord du <i>pourquoi
du C++</i>. </font></font>
<br><font face="Verdana"><font color="#1A3251">C'est avant tout une nécessité
de répondre à des besoins générés par
de gros projets. Ils nécessitent une façon de travailler
plus rigoureuse, pour un code plus structuré, extensible, réutilisable
et enfin si possible, portable. Ceci est assez limité lorsqu'on
emploie un langage simplement structuré tel que <b>C</b> ou <b>Turbo
Pascal</b>.</font></font>
<br> </blockquote>
<a NAME="Programmation Orient閑 Objet"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Programmation
Orientée Objet</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">La <b>Programmation
Orientée Objet</b> (P.O.O.) est une solution. Elle permet d'introduire
le concept d'<b>objet</b> justement, qui consiste en un ensemble de données
et de procédures qui agissent sur ces données.</font></font>
<p><font face="Verdana"><font color="#1A3251">Lorsque l'objet est parfaitement
bien écrit, il introduit la notion fondamentale d'<b>Encapsulation
des données</b>. Ceci signifie qu'il n'est plus possible pour l'utilisateur
de l'objet, d'accéder directement aux données : il doit passer
par des méthodes spécifiques écrites par le concepteur
de l'objet, et qui servent d'<i>interface</i> entre l'objet et ses utilisateurs.
L'intérêt de cette technique est évident. L'utilisateur
ne peut pas intervenir directement sur l'objet, ce qui diminue les risques
d'erreur, ce dernier devenant une "<i>boîte noire</i>".</font></font>
<p><font face="Verdana"><font color="#1A3251">Une autre notion importante
en P.O.O. est l'<b>héritage</b>. Elle permet la définition
d'une nouvelle classe à partir d'une classe existante. Il est alors
possible de lui adjoindre de nouvelles données, de nouvelles fonctions
membres (procédures) pour la spécialiser.</font></font>
<br> </blockquote>
<a NAME="Diff閞ences entre C et C++"></a><b><font face="Verdana"><font color="#1A3251"><font size=+1>Différences
entre C et C++</font></font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Nous allons parler
ici d'un certain nombre de différences existant entre le C et le
C++. Nous pourrions d'ailleurs plutôt utiliser le terme d'incompatibilités.</font></font>
<p><b><font face="Verdana"><font color="#1A3251">Les fonctions</font></font></b>
<blockquote><font face="Verdana"><font color="#1A3251">Les fonctions en
C peuvent être définies suivant deux modèles :</font></font>
<br>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 WIDTH="80%" BGCOLOR="#DBDBEE" >
<tr>
<td VALIGN=TOP><tt><font color="#3333FF">int</font> <b>CalculeSomme</b>
( a, b )</tt>
<br><tt><font color="#3333FF">int</font> a;</tt>
<br><tt><font color="#3333FF">int</font> b;</tt>
<br><tt>{</tt>
<br><tt> ... <font color="#006600">/* Fonction
*/</font></tt>
<br><tt>}</tt></td>
<td VALIGN=TOP><tt><font color="#3333FF">int</font> <b>CalculeSomme</b>
( <font color="#3333FF">int</font> a, <font color="#3333FF">int</font>
b )</tt>
<br><tt>{</tt>
<br><tt> ... <font color="#006600">/* Fonction
*/</font></tt>
<br><tt>}</tt></td>
</tr>
</table>
<font face="Verdana"><font color="#1A3251">Il faut simplement savoir que
le C++ n'accepte que la seconde méthode.</font></font></blockquote>
<b><font face="Verdana"><font color="#1A3251">Const</font></font></b>
<blockquote><font color="#1A3251"><font face="Verdana">Le C++ a quelque
peu modifié l'utilisation "<i>C</i>" de ce qualificatif. Pour rappel,
"</font><b><tt><font size=+1>const</font></tt></b><font face="Verdana">"
est utilisé pour définir une variable constante. C'est une
bonne alternative à un </font><b><tt><font size=+1>define</font></tt></b><font face="Verdana">.</font></font>
<br><font color="#1A3251"><font face="Verdana">La portée en C++
est désormais plus locale. En C, un </font><tt><font size=+1>const</font></tt><font face="Verdana">
permettait pour une variable globale d'être "visible" partout. C++
limite quant à lui la portée d'une telle variable, au fichier
source contenant la déclaration.</font></font></blockquote>
<b><font face="Verdana"><font color="#1A3251">Compatibilité de pointeurs</font></font></b>
<blockquote><font color="#1A3251"><font face="Verdana">En C ANSI, un "</font><b><tt><font size=+1>void*</font></tt></b><font face="Verdana">"
est compatible avec tout autre type de pointeurs, et inversement.</font></font>
<br><font face="Verdana"><font color="#1A3251">Par exemple, ceci est légal
en C :</font></font>
<br>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="60%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#006600">/* C */</font></tt>
<br><tt><font color="#3333FF">void</font> * pQqch; <font color="#006600">/*
Pointeur générique */</font></tt>
<br><tt><font color="#3333FF">int</font> * pEntier; <font color="#006600">/*
Pointeur sur un entier */</font></tt>
<br><tt>pEntier = pQqch;</tt>
<br><tt>pQqch = pEntier;</tt></td>
</tr>
</table>
<font color="#1A3251"><font face="Verdana">Ces affectations font intervenir
des conversions implicites. En C++, seule la conversion </font><i><tt><font size=+1>int*->void*</font></tt></i><font face="Verdana">
est implicite. L'autre reste possible, mais nécessite un "<b>cast</b>"
:</font></font>
<br>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="60%" BGCOLOR="#DBDBEE" >
<tr>
<td><tt><font color="#006600">// C++</font></tt>
<br><tt><font color="#3333FF">void</font> * pQqch;
<font color="#006600">// Pointeur générique</font></tt>
<br><tt><font color="#3333FF">int</font> * pEntier;
<font color="#006600">// Pointeur sur un entier</font></tt>
<br><tt>pEntier = (<font color="#3333FF">int</font>*)pQqch; <font color="#006600">//
"cast" en entier</font></tt></td>
</tr>
</table>
</blockquote>
</blockquote>
</td>
</tr>
</table></center>
<br>
<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_PremierPas.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>
Premiers pas en Visual 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>Les
Bases du C++ </font></font></font></b><a href="TutCpp_BasesCpp.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écédent</font></font></font></td>
<td>
<center><b><i><font face="Verdana"><font color="#407AC3"><font size=-2>Tutorial
C++ écrit par Gwenaë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 + -