GP and OOP are opposite in a sense! Because the former's philosophy is to achieve algorithm and data structure discrete, the latter is to be closely bound. C is not a purely object-oriented programming language, its wonderful place is that both OOP and all GPs. When actually use, the combination of both is often more effective in solving problems. The STL itself as a GP thought instance is a good example. If there is no inherit, I don't know what STL will look like, and there seems to be no other experiment.