typestar

Constructores e inicialización de miembros en C++

Los miembros se inicializan antes de que corra el cuerpo del constructor: la lista : es la asignación real.

#include <string>

class Account {
  public:
    Account() = default;  // keeps the in-class defaults below
    Account(std::string owner, double opening)
        : owner_(std::move(owner)), balance_(opening) {}
    const std::string& owner() const { return owner_; }
    double balance() const { return balance_; }

  private:
    std::string owner_ = "unclaimed";
    double balance_ = 0.0;
};

Cómo funciona

  1. Los inicializadores en la clase dan a owner_ y balance_ sus valores por defecto en la propia declaración.
  2. Account() = default le pide al compilador un constructor que use justo esos valores.
  3. El constructor de dos argumentos los reemplaza vía la lista : y mueve la cadena en vez de copiarla.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
359
Tokens
88
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 70 segundos.

Escribe este fragmento

Paso 2 de 3 en Clases y RAII; paso 17 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →