/OOP-in-C

Simple and efficient implementation of OOP in C suitable for real-time embedded systems.

Primary LanguageCMIT LicenseMIT

Brought to you by:

Quantum Leaps


GitHub release (latest by date) GitHub

Object-Oriented Programming in C

This repository provides the code accompanying the article: "Object-Oriented Programming". The code can be compiled and executed on any desktop computer (running Windows, Linux, or macOS).

Here is the code structure:

OOP-in-C/
+---doc/
¦       AN_OOP_in_C.pdf
¦
+---encapsulation/
¦       main.c
¦       make.bat
¦       shape.c
¦       shape.h
¦
+---inheritance/
¦       main.c
¦       make.bat
¦       rect.c
¦       rect.h
¦       shape.c
¦       shape.h
¦
+---polymorphism/
        circle.c
        circle.h
        main.c
        make.bat
        rect.c
        rect.h
        shape.c
        shape.h

Building and Running the Code

Each of the sub-directories contains make.bat (for Windows) that allows you to build and run the provided examples. (On Linux/macOS you can execute the commands from make.bat directly from the tarminal).

For example:

C:\GitHub\OOP-in-C>cd encapsulation
C:\GitHub\OOP-in-C\encapsulation>make

gcc shape.c main.c -o oop_in_c
oop_in_c

Shape s1(x=0,y=1)
Shape s2(x=-1,y=2)
Shape s1(x=2,y=-3)
Shape s2(x=0,y=0)

Videos

The concepts of OOP in C have been explained in a series of videos:

The PDF Version

The PDF version of the "Object-Oriented Programming" article is provided in the directory doc

Object-Oriented Programming in C

Licensing

The OOP-in-C source code and examples are released under the terms of the permissive MIT open source license. Please note that the attribution clause in the MIT license requires you to preserve the original copyright notice in all changes and derivate works.

How to Help this Project?

If you like this project, please give it a star (in the upper-right corner of your browser window):

GitHub star

Contact Information