Its a very broad topic and can not be covered in the single answer. But I would suggest you to go through the following link (its actually a snippet from a book and describes in a very nice way with examples.
http://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns
Hope it helps, lets others also comment if they have some small and crisp article.