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
- Los inicializadores en la clase dan a
owner_ybalance_sus valores por defecto en la propia declaración. Account() = defaultle pide al compilador un constructor que use justo esos valores.- 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í
classconstdefaultdoubleprivatepublicreturn
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.
Paso 2 de 3 en Clases y RAII; paso 17 de 27 en Fundamentos del lenguaje.