El paradigma de la programación orientada a objetos prevalece en todas las herramientas y lenguajes modernos para la creación de software. El estándar de la industria actual es el lenguaje de programación orientado a objetos C ++. Puede crear una instancia de una clase en C ++ de varias formas diferentes.
Es necesario
Compilador de C ++
Instrucciones
Paso 1
Cree una instancia de la clase como una variable automática en el ámbito local definido por una función, método de clase o bloque de instrucciones. Utilice una definición declarativa o imperativa de un objeto de clase en una ubicación seleccionada en su programa. Si es necesario, realice una llamada explícita a cualquier constructor con parámetros. Cree un objeto usando un código similar al siguiente: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // crea un objeto usando el constructor predeterminado COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // crear un objeto usando un constructor con parámetros} La memoria para objetos de clases creadas de manera similar, como para cualquier otra variable automática, se asigna en la pila. Por lo tanto, cuando salga del alcance y elimine el marco de la pila, el objeto se destruirá (con una llamada al destructor).
Paso 2
Cree una instancia de la clase en el montón con el operador new. Defina una variable de tipo puntero a los objetos de la clase a instanciar. Déle un valor que sea el resultado de evaluar el nuevo operador. Llame al constructor apropiado. Utilice un fragmento de código similar al siguiente: CSomeClass * poSomeObject; // definición de un puntero a objetos de la clase CSomeClasspoSomeObject = new CSomeClass; // Crea un objeto de clase CSomeClass * poSomeObject_2 = new CSomeClass (111, "3V"); // creación con una llamada al constructor con parámetros Al crear objetos por este método, se utiliza el mecanismo de asignación de memoria definido por el nuevo operador (si no se anula y no se establece su propia función de asignación), por lo que la dirección del El nuevo objeto no se conoce de antemano. Todos los objetos creados de esta manera deben eliminarse explícitamente mediante el operador de eliminación.
Paso 3
Cree una instancia de la clase utilizando el nuevo operador en un bloque de memoria autoasignado. Utilice un código similar al siguiente: void * p0 = malloc (sizeof (CSomeClass)); // asignación de memoria void * p1 = malloc (sizeof (CSomeClass)); // asignación de memoria new (p0) CSomeClass; // inicializa el objeto en la memoria asignada (constructor predeterminado) new (p1) CSomeClass (111, "abc"); // inicialización del objeto (constructor con parámetros) Antes de destruir los objetos creados por este método, debe llamar explícitamente a su destructor: ((CSomeClass *) p0) -> ~ (); La creación de objetos de esta manera se usa principalmente en clases de contenedor de plantilla de varias bibliotecas (como STL).