The major difference between C and C++ is that C is a procedural programming language and does not support classes and objects, while C++ object oriented programming language and support the concept of classes and object.
The differences between C and C++ are shown as below:
|Comparison Characteristics||C Language||C++ Language|
||It follows Top Down approach.||It follows Bottom Up approach.|
|Developed by||C was developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs.||C++ was developed by Bjarne Stroustrup in 1980 with C++’s predecessor “C with Classes”.|
|Programming type||It is a Procedural Oriented language.||It is an Object-Oriented Programming language|
|File Extension||In C language, file can be saved by .c extension.||In C++ language, file can be saved by .cpp extension.|
|Program Structure (or) Division
||In C language, program is divided into small parts called functions.||In C++ language, program is divided into parts called objects.|
|Data Types||C does not provide String or Boolean data types. It supports primitive & built-in data types.||C++ provides Boolean or String data types. It supports both user-defined and built-in data types.|
|Compatibility With Functions||C does not support functions with default arrangements.||C++ supports functions with default arrangements.|
|Inline function||It does not allow inline function.||It supports inline function.|
|Data Security||In C language, the data is not secured.||Data is secure, so it can’t be accessed by external functions. (Using Encapsulation concept of OOPs)|
|Namespace Feature||C does not have namespace feature.||C++ uses NAMESPACE which avoid name collisions.|
|Input/Output Function||C uses functions for input/output.
For example: scanf() and printf().
|C++ uses objects for input output.
For example: cin() and cout().
|Virtual/friend Function||C has no support for virtual and friend functions.||C++ supports virtual and friend functions.|
|Memory Allocation/De-allocation||C provides malloc() and calloc() functions for dynamic memory allocation, and free() for memory de-allocation.||C++ provides new operator for memory allocation and delete operator for memory de-allocation.|
|Exception Handling||C does not provide direct support for error handling (also called exception handling).||C++ provides support for exception handling. Exceptions are used for “hard” errors that make the code incorrect.|
|Overloading Feature||C does not support function and operator overloading.||C++ supports both function and operator overloading.|
|Level of Language||It is Mid-level language.||It is High-level language.|
|Pointers and References||C supports only Pointers.||C++ supports both pointers and references.|
|Mapping||Mapping between function and data is complicated in C.||Mapping between function and data can be done easily using ‘Objects’.|