| 1 | Nature Of Language | C is a structural or procedural type of programming language. | C++ is an object-oriented programming language and supports Polymorphism, Abstract Data Types, Encapsulation, among others. Even though C++ derives basic syntax from C, it cannot be classified as a structural or a procedural language. |
| 2 | Point Of Emphasis | C lays emphasis on the steps or procedures that are followed to solve a problem. | C++ emphasizes the objects and not the steps or procedures. It has higher abstraction level. |
| 3 | Compatibility With Overloading | C does not support function overloading. | C++ supports function overloading, implying that one can have name of functions with varying parameters. |
| 4 | 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. |
| 5 | Compatibility With Exception Handling | C does not support Exception Handling directly. It can be done through some other functions. | C++ supports Exception Exception:Handling can be done through try & catch block. |
| 6 | Compatibility With Functions | C does not support functions with default arrangements | C++ supports functions with default arrangements. |
| 7 | Compatibility With Generic Programming | C is not compatible | C++ is compatible with generic programming |
| 8 | Pointers And References | C supports only Pointers | C++ supports both pointers and references. |
| 9 | Inline Function | C does not have inline function. | C++ has inline function. |
| 10 | Data Security | In C programming language, the data is unsecured. | Data is hidden in C++ and is not accessible to external functions. Hence, is more secure |
| 11 | Approach | follows the top-down approach. | C++ follows the bottom-up approach. |
| 12 | Functions For Standard Input And Output | canf and printf | cin and cout |
| 13 | Time Of Defining Variables | n C, variable has to be defined at the beginning, in the function. | Variable can be defined anywhere in the function. |
| 14 | Namespace | Absent | Present |
| 15 | Division Of Programs | The programs in C language are divided into modules and functions. | The programs are divided into classes and functions in the C++ programming language. |
| 16 | File Extension. | C | CPP |
| 17 | Function And Operator Overloading | Absent | Present |
| 18 | Mapping | Mapping between function and data is complicated in C. | Mapping between function and data can be done easily using ‘Objects’. |
| 19 | Calling Of Functions | main() function can be called through other functions. | main() function cannot be called through other functions. |
| 20 | Inheritance | Possible | Not possible |
| 21 | Functions Used For Memory Allocation And Deallocation | malloc() and calloc for Memory Allocation and free() function for Deallocation. | New and delete operators are used for Memory Allocation and Deallocation in C++. |
| 22 | Influences | C++, C#, Objective-C, PHP, Perl, BitC, Concurrent C, Java, JavaScript, Perl, csh, awk, D, Limbo | C#, PHP, Java, D, Aikido, Ada 95 |
| 23 | Influenced By | B (BCPL,CPL), Assembly, ALGOL 68 | C, ALGOL 68, Simula, Ada 83, ML, CLU |
| 24 | Level of Language | Mid-level | High-level |
| 25 | Classes | C uses structures thereby, giving freedom to use internal design elements | class and structures |