C and C++ are two of the oldest surviving programming languages. The latter is directly derived from the former but flaunts more efficiency and productivity. Of course, both programming languages have their own advantages and drawbacks over one another
To provide you with an overview of C vs C++, C++ is an enhanced version of the C programming language with an additional feature of being object-oriented. C has been the motivation behind the birth of not only C++ but a multitude of presently popular high-level programming languages to the likes of Java, PHP, and Python.
What is C?
C is a procedural programming language that works on the lowest level of abstraction and hence is a systems programming language. It is compiled, lightweight, and offers manual memory management.
The strength of C programming language lies in performance and has the ability to be used for coding for a wide variety of platforms. Hence, the programming language can be used for coding almost anything.
What is C++?
C++ provides support for object-oriented programming. It offers a low level of abstraction and requires manual memory management. The programming language is comparable to C, lightweight, and compiled. It is capable of developing apps for a diverse range of platforms.
The C++ programming language has almost everything that C has to offer but in a better way. Like its original inspiration, the C programming language, C++ has and continues to, influence a range of high-level programming languages, such as C# and Java.
Difference between C and C++
|C was developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs.||C++ was developed by Bjarne Stroustrup in 1979 with C++’s predecessor “C with Classes”.|
|When compared to C++, C is a subset of C++.||C++ is a superset of C. C++ can run most of C code while C cannot run C++ code.|
|C supports procedural programming paradigm for code development.||C++ supports both procedural and object oriented programming paradigms; therefore C++ is also called a hybrid language.|
|C does not support object oriented programming; therefore it has no support for polymorphism, encapsulation, and inheritance.||Being an object oriented programming language C++ supports polymorphism, encapsulation, and inheritance.|
|In C (because it is a procedural programming language), data and functions are separate and free entities.||In C++ (when it is used as object oriented programming language), data and functions are encapsulated together in form of an object. For creating objects class provides a blueprint of structure of the object.|
|In C, data are free entities and can be manipulated by outside code. This is because C does not support information hiding.||In C++, Encapsulation hides the data to ensure that data structures and operators are used as intended.|
|C, being a procedural programming, it is a function driven language.||While, C++, being an object oriented programming, it is an object driven language.|
|C does not support function and operator overloading.||C++ supports both function and operator overloading.|
|C does not allow functions to be defined inside structures.||In C++, functions can be used inside a structure.|
|C does not have namespace feature.||C++ uses NAMESPACE which avoid name collisions.A namespace is a declarative region that provides a scope to the identifiers (the names of types, functions, variables, etc) inside it. Namespaces are used to organize code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries. All identifiers at namespace scope are visible to one another without qualification. Identifiers outside the namespace can access the members by using the fully qualified name for each identifier.|
|C uses functions for input/output. For example ||C++ uses objects for input output. For example |
|C does not support reference variables.||C++ supports reference variables.|
|C has no support for virtual and friend functions.||C++ supports virtual and friend functions.|
|C provides ||C++ provides |
|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.|
Hope you have enjoyed reading differences between C and C++. This comparison of C and C++ explains feature-wise difference between both programming languages.
Read More post here