Variables temporales de C ++ en la lista de inicialización
En C ++, hay alguna forma de tener algo como una variable temporal en una lista de inicialización. Quiero inicializar dos miembros constantes con la misma instancia de algo sin tener que pasar ese elemento, eliminar el requisito de const, usar una Fábrica (es decir, pasarlo pero hacer que la fábrica lo genere para ocultarlo del usuario de la API), o tener temp en realidad ser una variable miembro
Es decir. algo como
Class Baz{
const Foo f;
const Bar b;
Baz(Paramaters p):temp(p),f(p,temp),b(p,temp){ //temp is an instance of Something
// But NOT A member of Baz
// Whatever
}
}
en lugar de
Class Baz{
Foo f;
Bar b;
Baz(Paramaters p){
Something temp(p);
f = Foo(p,temp)
b = Bar(p,temp)
}
}
o
Class Baz{
Foo f;
Bar b;
Baz(Paramaters p,Something s):f(p,s),b(p,s){
}
}