calling default WrapArrayShallow constructor
**** calling copy WrapArrayShallow constructor
Now doing the same thing with WrapArrayShallow:
WrapArrayShallow 1:
a b c d e
WrapArrayShallow 2 created using the copy constructor on 1:
a b c d e
After changing the contents of WrapArrayShallow 1, 1 and 3 =
f g h i j
a b c d e
You may want to have a look at line 83. Think about what it does for a while, and think about what this means for was2 when setWrapArrayShallow is called on was1.
Side note, despite there being several news in your program, I don't see one delete. While you don't technically have a memory leak yet, you're awfully prone to getting one with that code. Just a warning.