Extended Whole
Whole& Whole::setP1(const PartOne& value) { p1.reset(new PartOne(value)); return *this;}Whole& Whole::setP2(const PartTwo& value) { p2.reset(new PartTwo(value)); return *this;}
Notes:
Assume that Whole has a couple of mutating methods - setP1() and setP2().