- Doesn't copy the pointer
- Copies data that pointer points to
- same value, different memory location
- Use when raw pointer is a class data member
```cpp
Deep::Deep(const Deep &source)
{
data = new int;
*data = *source.data;
}
```
[[Delegating Constructors|Delegate]]
```cpp
Deep::Deep(const Deep &source)
: Deep{*source.data} {
cout << "Copy constructor - deep" << endl;
}
```