- What is difference between initialization and assignment?
 - Does the line 
f2 = f1;use initialization or assignment (assumeFoois a class andf1andf2are both of typeFoo)? - Does the line 
Foo f2 = f1;use initialization or assignment (assumeFoois a class andf1is of typeFoo)? - What is a shallow copy and what is a deep copy?
 - What is the rule of 3?