Définir une classe avec des membres de données privés
Une classe en C++ est un modèle pour créer des objets. Elle définit un ensemble de propriétés (membres de données) et de méthodes (fonctions membres) que les objets créés à partir de cette classe auront. Les classes aident à organiser le code et à implémenter les principes de la programmation orientée objet tels que l'encapsulation, l'héritage et le polymorphisme.
La syntaxe de base pour définir une classe en C++ est la suivante :
class ClassName {
private:
// Private data members
int dataMember1;
std::string dataMember2;
public:
// Public member functions
void memberFunction1();
int memberFunction2();
};
Il existe trois spécificateurs d'accès en C++ qui contrôlent la visibilité et l'accessibilité des membres de classe :
private : Les membres déclarés comme privés sont accessibles uniquement à l'intérieur de la classe.
public : Les membres déclarés comme publics sont accessibles depuis l'extérieur de la classe.
protected : Les membres déclarés comme protégés sont accessibles à l'intérieur de la classe et par les instances de classes dérivées.
Dans cette étape, vous apprendrez à définir une classe avec des membres de données privés en C++. Les membres de données privés sont un concept essentiel en programmation orientée objet qui aide à encapsuler et à protéger l'état interne d'un objet.
Tout d'abord, ouvrez le WebIDE et accédez au répertoire ~/project. Créez un nouveau fichier appelé student.cpp :
touch ~/project/student.cpp
Ouvrez le fichier student.cpp dans le WebIDE et ajoutez le code suivant pour définir une classe Student avec des membres de données privés :
#include <iostream>
#include <string>
class Student {
private:
// Private data members
std::string name;
int age;
double gpa;
public:
// We'll add methods to interact with these private members in later steps
void displayInfo() {
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
std::cout << "GPA: " << gpa << std::endl;
}
};
int main() {
Student student;
// Note: We can't directly access private members
// student.name = "John"; // This would cause a compilation error
student.displayInfo();
return 0;
}
Décortiquons les concepts clés :
-
Membres de données privés :
- Déclarés à l'aide du spécificateur d'accès
private:
- Ne peuvent pas être directement accessibles depuis l'extérieur de la classe
- Fournissent une protection des données et une encapsulation
-
Types de données :
std::string name : Stocke le nom de l'étudiant
int age : Stocke l'âge de l'étudiant
double gpa : Stocke la moyenne générale de l'étudiant
-
Encapsulation :
- Les membres privés ne peuvent être accessibles que via des méthodes publiques
- Empêche la modification directe des données internes
Compilez le programme :
g++ student.cpp -o student
./student
Exemple de sortie lors de l'exécution du programme :
Name:
Age: 0
GPA: 0
Points clés :
- Les membres privés sont masqués à l'accès extérieur
- Ils ne peuvent être modifiés que via les méthodes de classe
- Cela aide à maintenir l'intégrité et le contrôle des données