#include using namespace std ; #include "myArray.h" int main() { myArray A ; for (int i = 0 ; i < 5 ; i++) { A.append(i) ; } cout << "Use copy constructor:\n" ; myArray B(A) ; // makes copy cout << "Use assignment operator:\n" ; myArray C, D ; D = C = A ; cout << "Now we have 4 copies.\n" ; A.data[0] = 1111 ; B.data[0] = 2222 ; C.data[0] = 3333 ; D.data[0] = 4444 ; cout << "A = " ; A.print() ; cout << "B = " ; B.print() ; cout << "C = " ; C.print() ; cout << "D = " ; D.print() ; cout << "\n\nUsing references...\n" ; myArray& aRef = A ; // a reference, does not copy aRef.data[2] = 777 ; cout << "A = " ; A.print() ; cout << "aRef = " ; aRef.print() ; cout << "\n\nReassigning aRef...\n" ; aRef = B ; // calls assignment operator, does copy aRef.data[2] = 888 ; cout << "B = " ; B.print() ; // B is unchanged cout << "aRef = " ; aRef.print() ; cout << "A = " ; A.print() ; }