Au travers de deux articles [1-2] sur les principes de l’orienté objet en C++, nous avions abordé encapsulation, héritage, et polymorphisme. Nous proposons dans ce nouvel article les classes de base pour gérer la persistance d’objets dans des fichiers. Ces classes utilisent les principes énoncés ci-dessus et présentent des stratégies via la généricité. Un exemple de stratégie pour stocker en binaire pourra être redéfini pour d’autres stratégies, comme un stockage en XML.
Commençons par planter le décor (cf. figure 1). Dans un premier temps, nous mettrons en place une classe de base virtuelle CBasePersistant dans un espace de nommage persistance. Cet espace de nommage sera utilisé tout au long de nos pérégrinations.
CBasePersistant n’est pas générique et vise à mettre en place la charpente (les données) et les mécanismes communs, les méthodes que devront développer nos classes dérivées. En particulier, elle devra intégrer un mécanisme de construction virtuelle pour la lecture dans nos flux persistants. Si vous cherchez sur Internet le terme « constructeur virtuel », vous serez immanquablement bannis et l’on vous dira que l’on ne peut avoir de constructeurs virtuels. Nous allons ici même démontrer concrètement le contraire, car nous allons avoir besoin d’un tel mécanisme ! En effet, nous devons construire des objets en appelant le constructeur dépendant de l’objet...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première