Le paradigme de la programmation orientée objet est répandu dans tous les outils et langages modernes de création de logiciels. La norme de l'industrie aujourd'hui est le langage de programmation orienté objet C++. Vous pouvez créer une instance d'une classe en C++ de plusieurs manières différentes.
Il est nécessaire
Compilateur C++
Instructions
Étape 1
Instanciez la classe en tant que variable automatique dans la portée locale définie par une fonction, une méthode de classe ou un bloc d'instructions. Utilisez une définition déclarative ou impérative d'un objet de classe à un emplacement sélectionné dans votre programme. Si nécessaire, appelez explicitement n'importe quel constructeur avec des paramètres. Créez un objet à l'aide d'un code semblable au suivant: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // crée un objet en utilisant le constructeur par défaut COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // création d'un objet à l'aide d'un constructeur avec des paramètres} La mémoire pour les objets des classes créées de la même manière que pour toute autre variable automatique est allouée sur la pile. Par conséquent, lorsque vous quittez la portée et supprimez le cadre de pile, l'objet sera détruit (avec un appel au destructeur).
Étape 2
Créez une instance de la classe dans le tas à l'aide de l'opérateur new. Définissez une variable de type pointeur vers les objets de la classe à instancier. Donnez-lui une valeur qui est le résultat de l'évaluation du nouvel opérateur. Appelez le constructeur approprié. Utilisez un extrait de code semblable au suivant: CSomeClass * poSomeObject; // définition d'un pointeur vers des objets de la classe CSomeClasspoSomeObject = new CSomeClass; // Crée un objet de classe CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // création avec appel au constructeur paramétré Lors de la création d'objets par cette méthode, le mécanisme d'allocation mémoire défini par l'opérateur new est utilisé (s'il n'est pas surchargé et que sa propre fonction d'allocation n'est pas définie), donc l'adresse du nouvel objet n'est pas connu à l'avance. Tous les objets créés de cette manière doivent être explicitement supprimés à l'aide de l'opérateur delete.
Étape 3
Créez une instance de la classe à l'aide de l'opérateur new sur un morceau de mémoire auto-alloué. Utilisez un code similaire au suivant: void * p0 = malloc (sizeof (CSomeClass)); // allocation mémoire vide * p1 = malloc (sizeof (CSomeClass)); // allocation mémoire new (p0) CSomeClass; // initialise l'objet sur la mémoire allouée (constructeur par défaut) new (p1) CSomeClass (111, "abc"); // initialisation de l'objet (constructeur avec paramètres) Avant de détruire les objets créés par cette méthode, vous devez explicitement appeler leur destructeur: ((CSomeClass *) p0) -> ~ (); La création d'objets de cette manière est principalement utilisée dans les classes de conteneurs de modèles de diverses bibliothèques (telles que STL).