. 51 s: Representar al uso con las delegaciones de constructores comunes a todas las acciones para los constructores de una clase
de 51 s: delegado utilizando un constructor implementado en funcionamiento común de todos los constructores.
Delegado constructor es una nueva característica introducida en C ++ 11, consulte el autor específico del siguiente artículo:
https://mp.weixin.qq.com/s/sHyLCI1tkLWvxfBKUiKwMg
La razón (razón)
Para evitar repeticiones y diferencias accidentales.
Evitar la duplicación y diferencias inesperadas.
Ejemplo, malo (muestra negativa)
class Date { // BAD: repetitive
int d;
Month m;
int y;
public:
Date(int dd, Month mm, year yy)
:d{dd}, m{mm}, y{yy}
{ if (!valid(d, m, y)) throw Bad_date{}; }
Date(int dd, Month mm)
:d{dd}, m{mm} y{current_year()}
{ if (!valid(d, m, y)) throw Bad_date{}; }
// ...
};
La acción común se vuelve tedioso de escribir y accidentalmente no puede ser común.
La acción en común a escribir tedioso, a veces convertido en algo común.
Ejemplo (Ejemplo)
class Date2 {
int d;
Month m;
int y;
public:
Date2(int dd, Month mm, year yy)
:d{dd}, m{mm}, y{yy}
{ if (!valid(d, m, y)) throw Bad_date{}; }
Date2(int dd, Month mm)
:Date2{dd, mm, current_year()} {}
// ...
};
Ver también: Si la "acción repetida" es una inicialización sencilla, considere un inicializador miembro de su clase.
Referencia: Si la "acción de repetición" simplemente inicialización, miembro de la clase inicializador contempla.
Cumplimiento (Sugerencias)
(Moderado) Buscar un cuerpo constructor similares.
(Promedio) mirando organismo similar del constructor.
Descripción del enlace
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c51-use-delegating-constructors-to-represent-common-actions-for-all-constructors-of-a-class
Creo que este artículo útil? pulgares de bienvenida ya compartir con más personas.
Leer artículos más actualizados, por favor preste atención a las micro-canal número público de pensamiento orientado a objetos []