Introduction à la POO en C++
Fait partie de la section Programmation Orientée Objet du Journey C++ de Coddy. Leçon 5 sur 104.
La programmation orientée objet organise le code en classes qui regroupent les données et les comportements.
Une classe simple avec des membres publics
class Dog {
public:
std::string name;
int age;
std::string bark() {
return name + " says Woof!";
}
};Créer et utiliser un objet
Dog dog;
dog.name = "Buddy";
dog.age = 3;
std::cout << dog.bark() << std::endl;Sortie :
Buddy says Woof!Une classe définit la structure : les données qu’elle contient et les actions qu’elle peut effectuer. Un objet est une instance particulière que tu crées et utilises. Les membres sous public: sont accessibles depuis n’importe où.
Dans un projet, la classe se trouve généralement dans un fichier d’en-tête (Dog.h) qui ne fait que déclarer ses méthodes, et leurs définitions se trouvent dans un fichier .cpp, où chaque nom de méthode est précédé du nom de la classe et de :: (l’opérateur de résolution de portée) :
// Dog.h
#include <string>
class Dog {
public:
std::string name;
std::string bark(); // déclaration uniquement
};
// Dog.cpp
#include "Dog.h"
std::string Dog::bark() {
return name + " says Woof!";
}Défi
FacileCréez une classe Dog avec des membres et des méthodes publics :
- Membres publics :
name(string) etage(int) bark(): renvoie"<name> says Woof!"info(): renvoie"<name> is <age> years old"
Essayez vous-même
#include <iostream>
#include "Dog.h"
int main() {
std::string name;
int age;
std::getline(std::cin, name);
std::cin >> age;
Dog dog;
dog.name = name;
dog.age = age;
std::cout << dog.bark() << std::endl;
std::cout << dog.info() << std::endl;
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesGénération et compilation en C++Fichiers d’en-tête et fichiers sourceEspaces de noms et portéeIntroduction à la POO en C++Classes et objetsLe pointeur « this »Méthodes (fonctions membres)Attributs (membres de données)Bases des constructeurs et destructeursRécapitulatif - Calculatrice simple4Propriétés de classe
Membres d’instance et statiquesAccesseurs et mutateursFonctions membres constMot-clé mutableMéthodes et variables statiquesFonctions et classes amiesRécapitulatif - Gestionnaire de compte bancaire7Héritage
Héritage de baseNiveaux d’accès de l’héritageOrdre d’appel des constructeurs et destructeursRedéfinition des méthodesFonctions virtuelles et VTableHéritage multipleHéritage virtuelRécapitulatif : hiérarchie des employés10Vue d’ensemble de la STL
Vue d’ensemble et philosophie de la STLConteneurs de la STLItérateursAlgorithmes de la STLFoncteurs et expressions lambdaRécapitulatif - fréquence des mots13Modèles de conception, partie 1
Introduction aux modèles de conceptionModèle SingletonFabrique et fabrique abstraiteModèle BuilderModèle ObserverModèle Strategy2Gestion de la mémoire
Mémoire de pile ou de tasPointeurs et référencesMémoire dynamique (new/delete)Pointeurs intelligents en C++RAII en C++Récapitulatif - Gestionnaire de tableaux dynamiques5Encapsulation
Spécificateurs d’accès en C++Spécificateurs d’accès en profondeurMasquage de l’informationStruct vs classeClasses imbriquées et internesRécapitulatif - Système de gestion des dossiers étudiants8Polymorphisme
Polymorphisme à la compilation vs à l’exécutionSurcharge de fonctionsRetour sur les fonctions virtuellesFonctions virtuelles puresClasses abstraitesConception d’interfaces en C++Conversion dynamique et RTTIRécapitulatif - Calculateur de formes3Constructeurs et destructeurs
Constructeur par défautConstructeur paramétréConstructeur de copieConstructeur de déplacementListes d’initialisation des constructeursConstructeurs déléguésApprofondissement des destructeursRègle des trois / cinq / zéroRécapitulatif - Classe String6Surcharge des opérateurs
Introduction à la surcharge des opérateursSurcharge des opérateurs arithmétiquesSurcharge des opérateurs de comparaisonOpérateurs de fluxSurcharge de l’opérateur d’affectationSurcharge des opérateurs [] et ()Opérateurs de conversion de typeRécapitulatif – Classe Matrix9Templates
Templates de fonctionsTemplates de classesSpécialisation des templatesTemplates variadiquesBases de SFINAE et des traits de typesRécapitulatif - Conteneur génériqueEntraînez-vous par vous-même : Compilateur C++ en ligne