class intcell publicexplicit intcellint initialvalue storedvalue new intinitialvalue }~intcelldelete storedvalue/destructor intcellconst intcell rhs storedvalue new int*rhs storedvalue }/copy constructor intcellintcell &rhs storedvaluerhs storedvalue rhs storedvalue nullptr/move constructor intcell operatorconst intcell rhs ifthis !&rhs *storedvalue *rhs storedvaluereturn *this/copy assignment intcell operatorintcell &rhs std::swapstoredvaluerhs storedvalue )return *this/move assignment int readconst return *storedvaluevoid writeint *storedvalue xprivateint *storedvalue}figure data member is pointerbig-five is written finallythe move assignment operator at lines - is implemented as member-bymember swap note that sometimes it is implemented as single swap of objects in the same manner as the copy assignment operatorbut that only works if swap itself is implemented as member-by-member swap if swap is implemented as three movesthen we would have mutual nonterminating recursion -style arrays and strings the +language provides built-in -style array type to declare an arrayarr of integersone writesint arr ]