Version 3 (modified by 14 years ago) (diff) | ,
---|
Objet Simples
L'objectif de ce premier TME est de bien se familiariser avec les mécanismes base régissant le fonctionnement d'un objet C++. Plus particulièrement sur les constructeurs & destructeurs, et les contextes dans lesquels ils peuvent être appelés.
Présentation du Code
Comme il a été annoncé en cours un soin tout particulier devra être accordé à la présentation de votre code. A cet effet un exemple type d'indentation vous est fourni ci-après. Toujours pour une meilleure lisibilité, réduisez la taille des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez jamais le caractère tabulation dans votre code source, configurez votre éditeur favori pour que celui-çi substitue automatiquement des espaces blanc ordinaires à la place d'une tabulation.
Pour vim
/gvim
, ajouter dans votre ~/.vimrc
les lignes
suivantes:
:set shiftwidth=2 :set expandtab :autocmd FileType c,cpp set cindent :autocmd FileType make set noexpandtab shiftwidth=8
Pour emacs
, ajoutez dans votre ~/.emacs
les lignes suivantes:
;; CC-Mode configuration. (defun local-c-mode-hook () (setq c-echo-syntactic-information-p t c-basic-offset 2 tab-width 4 indent-tabs-mode nil) (c-set-offset 'topmost-intro 0) (c-set-offset 'inclass '++) (c-set-offset 'access-label '-) (c-set-offset 'comment-intro '-) (c-set-offset 'arglist-cont-nonempty 'c-lineup-arglist-close-under-paren) (c-set-offset 'arglist-close 'c-lineup-arglist-close-under-paren) (c-set-offset 'defun-block-intro '+) (c-set-offset 'statement-block-intro '+) (c-set-offset 'block-close 0) (c-set-offset 'case-label '+) (c-set-offset 'statement-case-intro '+)) (add-hook 'c-mode-common-hook 'local-c-mode-hook) (setq auto-mode-alist (cons '("\\.\\(h\\|hh\\|hpp\\)\\'" . c++-mode) auto-mode-alist))
Compilation
Dans le cadre de ce premier TME, nous allons nous contenter de faire de la compilation
monolithique. C'est à dire que tout le code de chaque exercice sera contenu dans un
seul fichier source, par exemple Box.cpp
. L'éxécutable sera créé par compilation
de cet unique fichier.
Compilation monolithique d'un fichier source:
g++ -Wall -g -o box Box.cpp
Ici, l'éxécutable généré sera box
. Attention l'argment -o
doit immédiatement
être suivi du nom de l'éxécutable (box
).
Autres arguments donnés à g++
:
-g
demande d'inclure le code nécessaire pour pouvoir utiliser un débogueur (gdb
ouddd
).-Wall
demande d'afficher tous les avertissements. Vous devrez toujours utiliser ce drapeau (flag
) et à l'issue de la mise au point, votre programme ne devra générer aucun avertissement.
Mon Premier Objet: Box
Nous allons implémenter la classe Box
présentée en cours.
La classe Box
comporte les cinq attributs suivants:
_name
: le petit nom de l'objet courant (de typestd::string
)._x1, _y1, _x2, y2
: les coordonnées des deux angles de la boite (de typeint
).
Attachments (3)
-
indentation-1.png (15.5 KB) - added by 14 years ago.
Exemple d'Indentation
-
BoxMain.png (77.3 KB) - added by 14 years ago.
Programme de Test de Box
-
box-1.png (8.0 KB) - added by 14 years ago.
Methodes de la classe Box
Download all attachments as: .zip