santiaboy, this approach has several disadvantages. Such a function cannot be used for initialization, it's impossible to initialize const variables, it needs 2 lines instead of one. The advantage is very questionable: copying small classes is cheap (and assignment is needed anyway, also for output parameters), larger classes can provide move semantics.
Avoid premature optimization, especially if it complicates code.