[Q13.8]impelement a smart pointer class