C
|
C++
|
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 allow functions to be defined inside structures.
|
In C++, functions can be used inside a structure.
|
C uses functions for input/output. For example scanf and printf.
|
C++ uses objects for input output. For example cin and cout.
|
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 malloc() and calloc() functions for dynamic memory
allocation, and free() for memory de-allocation.
|
C++ provides new operator for memory allocation and free operator for
memory de-allocation.
|
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.
|
1. In Procedure Oriented Programming
(POP) importance is given to the sequence of things to be done i.e. algorithms,
where as in object Oriented Programming (OOP) importance is given to the data.
2. In POP larger programs are
divided into smaller programs called functions, where as in OOP larger programs
are divided into objects.
3. In POP, most functions share
global data i.e. data moves freely around the system from function to function.
In OOP mostly data is private and only functions inside the object can access
the data i.e. data is secured.
4. POP follows a top down approach
in problem solving while OOP follows a bottom up approach.
5. In POP adding of new data and new
functions to existing data and functions is very difficult where as in OOP it
is easy.
6. In POP there are no access
specifiers where as in OOP there are public, private and protected specifiers.
7. In POP, operator cannot be
overloaded and in OOP operator can be overloaded.
8. Procedure Oriented programming
creates a step by step program that guides the application through a sequence
of instructions. Each instruction is executed in order.
9. Object-Oriented programming is
much more similar to the way the real world works; it is analogous to the human
brain. Each program is made up of many entities called objects. Objects become
the fundamental units and have behavior, or a specific purpose, associated with
them.
10. Objects cannot directly access
another object’s data. Instead, a message must be sent requesting the data,
just like people must ask one another for information; we cannot see inside
each other’s heads.
Benefits
of Object-Oriented programming include:
- Ability to simulate real-world events much more effectively.
- Code is reusable thus less code may have to be written.
- Data becomes active.
- Graphical User Interface (GUI) applications can be created effectively.
- Programmers are able to reach their goals faster.
Property
|
C
|
C++
|
Major
Implementations:
|
GCC, MSVC,
Borland C, Watcom C
|
GNU Compiler
Collection, Microsoft Visual C++, Borland C++ Builder
|
Programming-input
/output:
|
scanf for
input;
printf for
output
|
cin for
input;
cout for
output
|
Speed:
|
C
applications are faster to compile and execute than C++ applications
|
C++ applications
are generally slower at runtime, and are much slower to compile than C
programs
|
Object
Oriented Programming
|
No
|
Yes
|
Appeared
in:
|
1972
|
1985
|
Designed
by:
|
Dennis
Ritchie
|
Bjarne
Stroustrup
|
Typing
Discipline:
|
Static, Weak
|
Static,
Unsafe, Nominative
|
include:
|
use
#include<stdio.h>
|
use #include
<iostream.h>
|
String
type:
|
Cannot use
string type but declare it as an array
|
Can use
string type
|
Classes:
|
No Classes
but uses structures and unions
|
Uses classes
and objects
|
Influenced:
|
awk, csh,
C++, C#, Objective-C, BitC, D, Concurrent C, Java, JavaScript,
Limbo, Perl, PHP
|
Ada 95, C#,
Java, PHP, D, Aikido
|
Paradigms:
|
Imperative
(procedural) systems implementation language
|
Multi-paradigm
|
Influenced
by:
|
B
(BCPL,CPL), ALGOL 68, Assembly
|
C, Simula,
Ada 83, ALGOL 68, CLU, ML
|
Platforms:
|
Platform
Dependent
|
Platform
Independent
|
No comments:
Post a Comment