The answer is always use the second approach unless performance is critical to your application. If performance is your main requirement, you need to compare which one is cheaper to execute between 1 constructor + 1 destructor + n assignments for example 1 and n constructors + n destructors for example 2.