Возможно ли в процедурном программирование, имитировать ООП?
До C++ в чистом С классы реализовывали структурами. Методы имитировались включением указателя на функцию в поле структуры, а наследование включением указателя на наследуемую структуру.
Погуглите "GObject"