I once wrote an article, how to create a very small Objective-C runtime just in C: mini_objc: A minimal Objective-C like runtime in less than 50 lines of code – Nat!'s Journal
I feel this could be useful to you, since it's fairly concise and shows how to inherit from classes and how to call "methods" dynamically. If you don't need dynamic methods, you could put a lot of function pointers into each class, for non-dynamic lookup, but that doesn't make it necessarily easier (though a bit faster).