TeamViewer Interview Question

What is a smart pointer in c++?