Supongamos que tengo esta clase:operador condicional en la lista de miembros-inicialización
class foo
{
public:
foo() { }
foo(const std::string& s) : _s(s) { }
private:
std::string _s;
};
que es un miembro de otra clase:
class bar
{
public:
bar(bool condition) :
_f(condition ? "go to string constructor" : **go to empty ctor**)
{
}
private:
foo _f;
};
Al inicializar _f
en bar
's lista de inicialización miembro que lo haría gustaría elegir qué constructor de foo
para invocar basa en condition
.
Qué puedo poner en lugar de go to empty ctor
para hacer este trabajo? Pensé en poner foo()
, ¿hay otra manera?
Con C++ 11, recomendaría un move-constructor sobre un copy-constructor, pero la técnica es buena. – Richard
@Richard: No estaba recomendando un uso explícito del constructor de copia (no es posible que eso sea posible). El ejemplo que mostré usará un constructor de movimiento cuando sea apropiado. –