Dans le suite, nous allons développer une classe permettant le stockage et la manipulation de chaines de caractères.
note : On utilisera la convention de nommage Java exception faite des attributs qui seront préfixés par _.
Classe
Comme pour le C
, nous allons séparer le déclaratif de l’implémentation. Ainsi, dans le header, nous mettrons entre autre les prototypes de fonctions et les déclarations de type.
Créer un fichier CharSequence.hpp
(les header en C++ peuvent avoir comme extension .hh, .H, .hp, .hxx etc…). Vous protégerez ce fichier contre les inclusions multiples.
Créer le fichier CharSequence.cpp
qui inclue CharSequence.hpp
(comme CharSequence.cpp
contient l’implémentation de CharSequence.hpp
, on utilisera #include "CharSequence.hpp"
).
Ajouter à program.cpp
l’inclusion du fichier d’entête.
Dans CharSequence.hpp
ajouter la déclaration de la classe CharSequence
:
class CharSequence {
};
Déclarer une variable de ce type dans program.cpp
et vérifier que tout compile correctement:
-
donner la commande pour produire directement un exécutable
-
donner les commandes pour compiler en objets puis produire l’exécutable
Vous pouvez simplifier la phase de compilation
en utilisant au choix un Makefile:CXX=g++
CXXFLAGS=-Wall -g
LDFLAGS= -g
.PHONY: clean
program: program.o CharSequence.o
$(CXX) $(LDFLAGS) $^ -o $@
CharSequence.o: CharSequence.cpp CharSequence.hpp
program.o: program.cpp CharSequence.hpp
clean:
rm -f *.o program
cmake_minimum_required(VERSION 3.5)
project(pg212)
add_executable(program program.cpp CharSequence.cpp CharSequence.hpp)
target_include_directories(program PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
Attributs
Dans la classe CharSequence
, ajouter un attribut public: _length
de type unsigned int
. On donnera à cet attribut une valeur par défaut lors de la déclaration (c++11).
Dans le programme principal, afficher la valeur de l’attribut de la variable créée précédemment (rappel: il est public). Dans le programme principal, ajouter une deuxième variable pour manipuler une instance de CharSequence
allouée dynamiquement, puis afficher l’attribut _length
de cette deuxième variable.
Vérifier votre programme en l’exécutant avec valgrind
Méthode
Ajouter la méthode length
dans la classe CharSequence
: la déclaration se fait dans le entête et l’implémentation dans CharSequence.cpp
. Maintenant que l’on dispose de cette méthode, mettez l’attribut _length
en privé.
note : La déclaration d’une méthode, d’un constructeur et du destructeur se fera toujours dans le fichier entête ‘.hpp’ et l’implémentation dans le fichier ‘.cpp’.
Utiliser cette méthode sur nos deux variables dans program.cpp
.