Definitions for "Smart pointer"
In C++, an object that implements the funtionality of a pointer and additionally performs some action whenever an object is accessed through it. Smart pointers are implemented by overloading the pointer-dereference (-) operator.
a class that acts like a pointer but which also deletes the object pointed to when finished
a class that contains a pointer to another object
a template class that takes the type of the pointee as an argument