03.07.2013 Views

Magazine Pom's : la collection

Magazine Pom's : la collection

Magazine Pom's : la collection

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Professional de Bor<strong>la</strong>nd nous parait étrangement comparable<br />

à notre LightSpeed 3.0x. Même niveau de prix, même<br />

environnement intégré. La comparaison s'arrête cependant<br />

avec le Think C 4.0, car Bor<strong>la</strong>nd n'a pas ajouté, à ce jour,<br />

de fonctionnalités objets à son environnement. Dans le<br />

monde du DOS, il reste donc uniquement le C de Zortech<br />

dont le prix soit raisonnable. Mais il ne s'agit pas d'un<br />

environnement intégré.<br />

Think C 4.0 sort de cette comparaison avec une longueur<br />

d'avance. TI constitue donc un choix très pertinent pour <strong>la</strong><br />

grande majorité des développements sur Macintosh.<br />

Think C 4.0 :<br />

un ou plusieurs + ?<br />

Néanmoins, les données du problème vont très vite évoluer<br />

avec <strong>la</strong> disponibilité d'un MPW C++ sur le Mac. Michael<br />

Kahl l'a dit officiellement, l'auteur principal de Think C<br />

4.0 refuse d'assimiler son produit à un C++.<br />

Il s'agit bien cependant d'un environnement objet. En<br />

d'autres tennes, il est possible de définir des c<strong>la</strong>sses et des<br />

objets organisés en hiérarchie, et des mélhodes attachées à<br />

chaque niveau de cette hiérarchie. Les objets du niveau le<br />

plus bas "hériteront" du "comportement" (en c<strong>la</strong>ir : des<br />

méthodes) des objets du niveau pl élevé. Les c<strong>la</strong>sses sont<br />

décritet dans une syntaxe compatible avec celle du C++ :<br />

elles sont définies comme des structures "contenant" à <strong>la</strong><br />

fois des variables et des prototypes de fonctions (les<br />

"méthodes"). Il est possible de redéfinir une méthode à<br />

chaque niveau de <strong>la</strong> hiérarchie, pennet<strong>la</strong>nt ainsi de <strong>la</strong> rendre<br />

spécifique à ce niveau.<br />

Concrètement si un objet "fenêtre" a été défini, et que les<br />

deux "fils" de cet objet sont "fenêtre document" et "fenêtre<br />

dialogue", il est possible de définir une fonction de mise à<br />

jou: pennettant de répondre aux "UpdateEvent" à chacun de<br />

ces niveaux : au niveau fenêtre, on décrira les principes<br />

généraux de <strong>la</strong> mise à jour (par exemple, le dessin du cadre<br />

de <strong>la</strong> fenêtre) et au niveau inférieur, seront ajoutées les<br />

actions spécifiques à chaque type de fenêtre (par exemple,<br />

pour le dialogue, le dessin des contrôles). À tous les<br />

niveaux, l'action sera effectuée par une fonction dont le<br />

nom sera idemique.<br />

Apparemment, les concepts sont identiques. Sur le fond les<br />

différences entre Think C 4.0 et C++ sont très nombreuses.<br />

Voici une liste des différences principales constatées à ce<br />

jour :<br />

Il "L'Overloading" des méthodes n'existe pas dans le<br />

Think C 4.0. Ceci signifie qu'il n'est pas possible<br />

d'avoir le même nom de méthode à deux niveaux de <strong>la</strong><br />

hiérarchie si elles ne comportent pas exactement le même<br />

nombre et le même type d'arguments. En regard des<br />

concepts disponibles dans les environnements, ce<strong>la</strong><br />

constitue un handicap "objet". Pour reprendre notre<br />

exemple, les arguments nécessaires à <strong>la</strong> mise à jour d'une<br />

fenêtre document ont toutes chances d'être partiellement<br />

<strong>Pom's</strong> nO 47<br />

différents des arguments nécessaires à <strong>la</strong> mise à jour d'une<br />

fenêtre de dialogue.<br />

Il Les c<strong>la</strong>sses sont, en fait, véritablement des structures<br />

pour Think C 4.0. Le comportement du compi<strong>la</strong>teur à<br />

l'égard d'une structure est détenniné en fonction du fait<br />

qu'elle hérite ou non d'une méthode. Une "root c<strong>la</strong>ss" doit<br />

comporter un héritage de "direct" ou "indirect" dans<br />

Think C 4.0. Toute c<strong>la</strong>sse doit donc hériter de quelque chose<br />

dans Think C 4.0.<br />

V C++ nécessite <strong>la</strong> déc<strong>la</strong>ration explicite du caractère pu·<br />

blic ou privé des membres d'une c<strong>la</strong>sse de base à<br />

l'égard des c<strong>la</strong>sses dérivées. Par défaut, C++ considère<br />

privés les membres des c<strong>la</strong>sses dérivées. C'est le contraire<br />

dans Think C 4.0 où tout est public par défaut.<br />

Il li n'y a aucune distinction entre les membres de type<br />

"public", ''private'' et "protected" dans Think C 4.0.<br />

Tout est considéré comme "public".<br />

On ne peut donc pas parier d'un C++ à propos de<br />

Think C 4.0. Ceci est vrai avec le C++ Lx, et encore plus<br />

avec <strong>la</strong> version 2, en raison de l'absence de multi-héritage.<br />

L'environnement objet qu'offre Think. C 4.0 est cependant<br />

intéressant à au moins deux titres :<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!