this is trivially true as classes are exactly the same as struct except for the default access.
If you mean member functions, virtual functions and inheritance, I beg to differ.
How else would people do OOP in C? Use GObject and its macros and boilerplate?
structs?
That's how I did it before C++ existed. Structs with pointers to functions (which is conceptually what C++ classes are).
Yarp, I do the same. It's rudimentary but works fine and the code is clean enough if you pick a couple conventions (starting "private" variables with an underscore for example) and stick with them.