One reason may be performance. Imagine you have 100 instances of a class. If you do not use pointers, and you want to do something like copying these instances from one container to another, there is quite a lot of overhead, since the copy constructor will need to be called on each of them. However, if you have pointers to these instances, then the only thing that really copies is the pointer, which makes the operation much faster.
Pete source
share