ok so we decided that if you were to return a reference u would have to use new within the function. So why is that not ok. Consider this.....
now what happens when we add these text objects together.
text& operator + (const text& Text1,const text& Text2)
text* NewText=new text;
// concat Text1 and Text2
How many temporary objects are created in that last expression and who called delete on the newed memory they contain??
That is why operator + MUST return an object. A reference is never suitable.