$\require{cancel}$
ArrayT(const ArrayT & src);
this
this to avoid a = a
ArrayT & operator = (const ArrayT & src) {
if (this != &src) {
// code to do a deep copy of dynamic memory
// also do a shallow copy
}
return *this
}