Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Lista de inicialización de constructores en C++: Por qué y cómo usarla

Al instanciar objetos, los constructores a menudo manejan la inicialización de variables miembro. Para tales miembros, una lista de inicialización para constructores proporciona una forma abreviada y eficiente de su inicialización antes de que se ejecute el cuerpo del constructor. Aparte del rendimiento, a veces también es obligatorio debido a variables const o miembros de una clase base.

¿Qué es una lista de inicialización de constructor?

Una lista de inicialización de constructor es un procedimiento para inicializar variables miembro directamente, por lo tanto, no hay un constructor por defecto que se copie y luego se asigne.

Sintaxis

La siguiente sintaxis de inicialización de lista de constructor es la siguiente:

 ClassName(type1 param1, type2 param2) : member1(param1), member2(param2) { // Constructor body } 

Aquí, member1 y member2 se inicializan con param1 y param2 antes de que se ejecute el cuerpo del constructor.

Ejemplo de lista de inicialización de constructor

Aquí hay un ejemplo simple que demuestra cómo usar una lista de inicialización.

 #include <iostream> #include <string> class Student { public: Student(const std::string& name, int age) : name(name), age(age) {} void display() const { std::cout << "Name: " << name << ", Age: " << age << "\n"; } private: std::string name; int age; }; int main() { Student s("Navya", 20); s.display(); return 0; } 

Salida

 Name: Navya, Age: 20 

¿Por qué usar listas de inicialización de constructores?

Casos especiales

En lo siguiente, discutiremos algunos casos especiales para la lista de inicialización de constructor:

Miembros Const o de Referencia

Las variables const y los miembros de referencia no pueden reasignarse, por lo que deben inicializarse en una lista de inicialización,

 class Config { public: Config(const std::string& product, const int & model) : product (product), model(model) {} private: const std::string product; const int & model; }; 

Inicialización de clase base

Cuando una clase derivada hereda de una clase base, puede usar una lista de inicialización para llamar al constructor de la clase base,

 class Base { public: Base(int value) : baseValue(value) {} protected: int baseValue; }; class Derived : public Base { public: Derived(int value, int extra) : Base(value), extraValue(extra) {} private: int extraValue; }; 

Lenguaje C

  1. Dominando Queues en C#: Enqueue, Dequeue y Operaciones Primero-En-Entrar-Primero-En-Salir Explicadas
  2. Dominando structs en C: Paso, retorno y manejo por referencia
  3. Dominando la sobrecarga de operadores en C++: ejemplos prácticos y mejores prácticas
  4. Operadores en C# – Guía completa de operadores en C#
  5. Dominando los Arrays en C++: Declaración, Inicialización y Ejemplos Prácticos
  6. Instalación de Dev‑C++ en Windows: Guía paso a paso
  7. Desarrollo con Windows Forms en C#: Tutorial Práctico Paso a Paso
  8. Entendiendo Interfaces en C#: Definición, Ejemplo y Uso Práctico
  9. Entendiendo las clases de almacenamiento en C: ámbito, vida y rendimiento
  10. Dominando funciones en C: Estructura, declaración y mejores prácticas
  11. Dominando la lógica condicional en C#: If, If-Else, If-ElseIf y sentencias If anidadas