use 'new' when returning references from functions
keypoint:
Dynamically allocated memory is allocated on Heap and non-static and local variables get memory allocated on Stack
more from here
keypoint:
Dynamically allocated memory is allocated on Heap and non-static and local variables get memory allocated on Stack
more from here