You can loosely model OOP in C, which is something i do all the time.
Other then OOP though C++ has some interesting features such as standardized generic programming and the STL makes some functional programming features decently accessible.
You can do generic programming in C (i do it all to much) but theirs no real standard way to go about it. The easiest ways are manipulating void pointers and flagged structs/unions. It's really good and refreshing to have a standard way though.

