What is the difference between C and C++?

C Programming Language >   Fundamentals of C Language >   C, C++ and Java  

Long Question

1380


Answer:

  • Even though C and C++ programming languages are belonging to middle level languages, both are differed in below.

    • C is structure/procedure oriented programming language whereas C++ is object oriented programming language.
    • C language program design is top down approach whereas C++ is using bottom up approach.
    • Polymorphism, virtual function, inheritance, Operator overloading, namespace concepts are not available in C programming language. Whereas C++ language supports all these concepts and features.
    • C language gives importance to functions rather than data. Whereas C++ gives importance to data rather than functions.
    • So, data and function mapping is difficult in C. But, data and function mapping is simple in C++ that can be done using objects.
    • C language does not support user define data types. Whereas C++ supports user define data types.
    • Exception handling is not present in C programming language. Whereas exception handling is present in C++ language.
    • C language allows data to freely flow around the functions. But, data and functions are bound together in C++ which does not allow data to freely flow around the functions.

Difference Between C and C++

Parameter C C++
Definition It is a structural programming language that doesn’t provide any support for classes and objects. It is an object-oriented programming language, and it provides support for the concept of classes and objects.
History Dennis Ritchie developed the C language at the AT&T Bell Laboratories in around 1969. Bjarne Stroustrup developed the C++ language in 1979-1980 at Bell Labs.
Type of Programming Language C primarily supports procedural programming for developing codes. Here, it checks the code line by line. C++ supports both programming paradigms- procedural as well as object-oriented. It is, thus, known as a hybrid language.
Support for OOPs Feature C has no support for the OOPs concept. Thus, it does not support encapsulation, polymorphism, and inheritance. The C++ language supports encapsulation, inheritance, and polymorphism because it is an object-oriented programming language.
Supported Features C has no support for functions and operator overloading. It also does not have any namespace feature and functionality of reference variables. C++, on the other hand, supports both of the functions and operator overloading. It also has the namespace feature and the functionality of reference variables.
Driven Type The C is a function-driven language because it is procedural programming. The C++ language, on the other hand, is object-driven because it is OOP (object-oriented programming).
Data Security C is vulnerable to manipulation via outside code. It is because it does not support encapsulation- leading to its data behaving as a free entity. C++, on the other hand, is a very secure language. It supports encapsulation of data in the form of objects- thus hiding the information and ensuring that one uses the structures and operators as intended.
Type of Subset It is a subset of the C++ language. It cannot run the codes used in C++. It is a superset of the C language. It is capable of running 99% of the C language codes.
Segregation of Data and Functions Since C is a procedural programming language, the data and functions stay separate in it. In the case of C++, the data and functions stay encapsulated in an object’s form.
Hiding Data and Information C does not support the hiding of data and information. C++ language hides the data through encapsulation. This process ensures that a user utilizes the structures as operators as intended.
Built-in Data Types The C language does not support built-in data types. The C++ language supports built-in data types.
Function Inside Structures In the case of C, it does not define the functions inside structures. In the case of C++, it uses functions inside a structure.
Reference Variables It does not support any reference variables. It supports reference variables.
Overloading of Functions Function overloading allows a user to have more than one function with different parameters but the same name. The C language does not support it. The C++ language supports function overloading.
Overriding of Functions Function overriding provides the specific implementation to any function that is defined already in the base class. The C language does not support it. The C++ language supports function overriding.
Header File C language uses the <stdio.h> header file. C++ language uses the <iostream.h> header file.
Namespace Features The namespace feature groups various entities like objects, classes, and functions under a specific name. No namespace features are present in the C language. The C++ language uses the namespace features to help avoid name collisions.
Virtual and Friend Functions The C language does not support virtual and friend functions. The C++ language supports virtual and friend functions.
Primary Focus C language focuses on the process or method instead of focusing on the data. C++ language focuses on the data instead of focusing on the procedure or method.
Inheritance The inheritance feature assists the child class in reusing the parent class’s properties. The C language offers no support for inheritance. The C++ language provides support for inheritance.
Allocation and Deallocation of Memory The C language provides calloc() and malloc() for dynamic allocation of memory and free() for deallocation of memory. The C++ language provides a new operator for the allocation of memory and a delete operator for the deallocation of memory.
Exception Handling It does not provide any direct support for exceptional handling. C language requires the usage of functions that support exception handling. It provides direct support for exceptional handling. The C++ language uses a try-catch block.
Access Modifiers The structures in C have no access modifiers. The structures in C++ do have access modifiers.
Type of Approach C language follows a top-down approach. It functions to break down the main module into various tasks. Then it breaks these tasks into sub-tasks, and so on. C++ language follows the bottom-up approach. It means that it first develops the lower-level modules and then moves on to the next-level modules.
Function for Input/Output The C language uses the scanf() and printf() functions for the input and output operations. In the C++ language, it uses the cin and cout for the input and output operations.


This Particular section is dedicated to Question & Answer only. If you want learn more about C Programming Language. Then you can visit below links to get more depth on this subject.




Join Our telegram group to ask Questions

Click below button to join our groups.