class Example
{
private:
ExtremelyHeavyObject obj;
public:
Example():
obj
(
ExtremelyHeavyObjectBuilder builder;
builder.method1();
builder.method2();
builder.method3();
/* Some code here */
return builder.build(); // Assign to obj builder.build() result
)
{}
};
ExtremelyHeavyObject obj *
не хотелось бы рассматривать, так как оно бы потребовало доп. аллокаций/деаллокаций а также лишний индирект