K&R is a book about C. C has no classes or inheritance (unless you ugly fake it), so the term doesn't originate from there.
C++ is multiparadigm language. OOP is just one of supported styles. So is functional, data oriented and others. C++ was inspired by a lot of languages before it, like Simula, Smaltalk, Modula-2 and others. Different people related to different languages used different terms to mean the same things. It's just your normal word soup. Get used to it as it's not going away.
Subclassing, inheriting and deriving means the same thing.
Subclass, child class and derived class means the same thing.
Superclass, parent class and base class means the same thing.
As for the original question - my personal opinion is that neither copying nor modifying existing projects is a good application design method. I would say you should rather design your app first, list steps needed to implement exactly what you had in mind and then implement it step by step, verifying at each step if it matches your design. You can use examples and code snippets for each step, but mostly as a guidance and not as the basis for everything.
Copy/pasting and modifying entire example projects as pieces of your software is not a good way to write an application. Renaming stuff and gluing together things that were never meant as anything more than simple examples of some API usage is a way to make so called "spaghetti code" that's only good for throwing away.