Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
The topic of how to implement polymorphism in C tends to pop up now and then. Many programmers are used to OO design from higher level languages and supposedly OO is a "language-agnostic" way of pr...
#1: Initial revision
How do you implement polymorphism in C?
The topic of how to implement polymorphism in C tends to pop up now and then. Many programmers are used to OO design from higher level languages and supposedly OO is a "language-agnostic" way of proper program design no matter language. So how to do it in C? A design pattern I've often seen is to solve inheritance is on a project/linking level. That is, have some `parent.h` which defines a number of functions but does not actually implement them. Meaning that the user of that library is supposed to implement the functions and then application-level code using `parent.h` will get the inherited behavior by linking the relevant `child.c` to their project. This gives inheritance but not really polymorphism, since you can only have one single behavior per project. It rather seems to be C's equivalent of for example Java's `interface`. So what's a simple way to implement actual polymorphism with multiple object instances and multiple inherited classes in the same project?