Lecture 1
Introduction
Contents
• Basic Concepts of C++
• Difference between C and C++
• Applications of C++
• How a program is Compiled?
• Simple C++ Program
Basic Concepts of C++
Basic Concepts of C++
Layers of Computer Software
Basic Concepts of C++
Basic Concepts of C++
• Object Oriented Programming is method of programming where a system is
considered as a collection of objects that interact together to accomplish certain
tasks. Objects are entities that encapsulate data and procedures that operate on
the data.
• In OOPS first a concept known as "Object Oriented Analysis (OOA)" is used
to specify the objects in term of real world requirements, their behavior and
interactions required. The next concept would be the "Object Oriented Design
(OOD)" that converts these real-time requirements as a hierarchy of objects in
terms of software development requirement. Finally OOPS is used to
implement the requirements using the C++ programming language.
• The main purpose of object oriented programming is to simplify the design,
programming and most importantly debugging a program. So to modify a
particular data, it is easy to identify which function to use. To add additional
features it is easy to identify where to add functions and its related data.
Basic Concepts of C++
• Object Oriented Programming Language
• Basic Concepts:
• Objects
• Classes
• Data Abstraction
• Encapsulation
• Inheritance
• Polymorphism
• Dynamic Binding
• Message Passing
Objects
• Basic runtime entity in an object – oriented system.
• Often termed as “instance” of a class.
• Example:
– a person, a place, a bank account etc.
• They can be of any type based on its declaration.
• When program is executed, objects interact by sending messages
at runtime.
• Example 2:
– Two objects namely, “customer”, “account”. Customer object
may send a message to the account object requesting for bank
balance.
Classes
• Class is a collection of objects of similar type.
• Class is a way to bind the data and its associated functions
together.
• Objects are basically variable of the class or an object is an
instance of a class.
• Examples:
– Shape is a class and Rectangle, Square, Triangle are its objects.
–
Abstraction
• Providing only essential information to the outside world i.e. to
represent the needed information in program without presenting the
details.
• Data abstraction is a programming/ design technique that relies on
the separation of interface and implementation.
• In C++, they provide sufficient public methods to the outside world
to play with the functionality of the object and to manipulate object
data, i.e., state without actually knowing how class has been
implemented internally.
• Eg: While using an object (that is an instance of a class) the
built in data types and the members in the class are ignored.
This is known as data abstraction.
Abstraction
Encapsulation
• All C++ programs are composed of the following two
fundamental elements:
– Program statements (code): This is the part of a program that
performs actions and they are called functions.
– Program data: The data is the information of the program which
affected by the program functions.
• Encapsulation is an Object Oriented Programming concept that
binds together the data and functions that manipulate the data,
and that keeps both safe from outside interference and misuse.
• Data encapsulation led to the important OOP concept of data
hiding.
Encapsulation
• C++ supports the properties of encapsulation and data hiding
through the creation of user-defined types, called classes.
• Eg: a class can contain
– private, protected, public members.
Inheritance
• Inheritance works on the basis of re-usability.
• This provides us an opportunity to reuse the code functionality
and fast implementation time.
• When creating a class, instead of writing completely new data
members and member functions, the programmer can designate
that the new class should inherit the members of an existing
class. This existing class is called the base class, and the new
class is referred to as the derived class.
• The idea of inheritance implements the is a relationship.
Inheritance
Polymorphism
• Poly means many and morphism means changing or alterable.
• The word polymorphism means having many forms.
Polymorphism
• C++ polymorphism means that a call to a member function will
cause a different function to be executed depending on the type
of object that invokes the function.
Dynamic Binding
• Binding refers to the linking of a procedure call to the
code to be executed in response to the call.
• Dynamic binding (late binding) means that the code
associated with a given procedure call is not known
until the time of the call at run-time.
• Associated with polymorphism and inheritance.
Message Passing
• OOPs consists of a set of objects that communicate with each
other.
• This involves following steps:
– Creating classes that define objects and their behavior
– Creating objects from class definitions.
– Establishing communication among objects
• A message for an object is a request for execution of a
procedure, and therefore will invoke a function (procedure)
in the receiving object that generates the desired result.
Message Passing
• Message passing involves specifying the name of the object,
the name of the function (message) and the information to be
sent.
Difference between C and C++
Difference between C and C++
S. No. Procedural Programming (C) Object Oriented Programming (C++)
1 Emphasis is on doing things Emphasis is on data rather than
(algorithms). procedure.
2 Large programs are divided Programs are divided into objects.
into smaller programs in the Functions that operate together are
form of functions. tied together in the data structure.
3 Most of the functions share Data is mostly hidden and cannot be
global data. accessed by external functions.
4 Data move openly around the Objects may communicate with each
system from function to other through functions. New data
function. Functions transform and functions can be easily added
data from one form to another. wherever necessary.
5 Employs top-down approach in Follow bottom-up approach in
program design. program design.
Difference between C and C++
Functioning of Procedural Language Functioning of Object Oriented
Programming Language
Difference between C and C++
• A class is an extension of the idea of structure used in
C.
• A new way of creating and implementing
user-defined data type.
C Structures
• Provide a method for packing together data of different types.
• A convenient tool for handling a group of logically related
data items.
• Eg:
struct student
{
char name[20];
int roll_no;
float total_marks;
} A;
Limitations
• Cannot treat struct data-type like built in data type.
Example:
struct Complex
{
float x;
float y;
} c1, c2,c3;
Complex nos. c1, c2, c3 can be easily assigned values using dot
operator, but we can’t directly add or subtract two complex nos.
i.e.
c3 = c1 + c2; // illegal in C.
• Do not permit data hiding. Structure members are public
members.
C++ Classes
• Attempts to bring user defined types as close as
possible to the built-in data types.
• Also provides facility to hide the data.
• Inheritance is also supported by C++
Applications
Applications of OOPs Languages
• Real-time systems
• Simulation and Modeling
• Object-oriented Databases
• Hypertext and Hypermedia systems
• AI and expert systems
• Neural Networks and parallel programming
• Decision Support and office automation systems
• CIM/CAM/CAD systems
How a Program is Executed?
Flowchart
1. Editor
• C++ program is written in an Editor.
• Saved as a file with extension .cpp.
2. Preprocessor
• Preprocessing performs (usually simple) operations on the source
file(s) prior to compilation.
• Typical preprocessing operations include:
(a) Expanding macros (shorthand notations for longer
constructs). For example, in C,
#define abc(x,y) (3*x+y*(2+x))
In program n = abc(a,b) becomes
n = (3*a+b*(2+a))
• (b) Inserting named files. For example, in C++,
# include <iostream>
is replaced by the contents of the file iostream.h
3. Compiler
• Compiler is a program that can read a program in one
language — the source language — and translate it into
an equivalent program in another language — the target
language or machine language.
• An important role of the compiler is to report any errors
in the source program that it detects during the
translation process.
4. Linker
• A linker combines object code (machine code that
has not yet been linked) produced from compiling
and assembling many source programs, as well as
standard library functions and resources supplied by
the operating system.
5. Loader
• Compilers, assemblers and linkers usually produce code whose
memory references are made relative to an undetermined
starting location that can be anywhere in memory.
(relocatable machine code)
• The loader then puts together all of the executable object files
into memory for execution.
• A loader calculates appropriate absolute addresses for these
memory locations and amends the code to use these addresses.
6. Execute
CPU executes the program one instruction at time.
A Bit more about execution
1. To stop the process
after the preprocessor
step, you can use
the -E option:
g++ -E prog1.cpp
The expanded source
code file will be printed
on standard output (the
screen by default).
2. To stop the process after
the compile step, you can
use the -S option:
g++ -S prog1.cpp
By default, the assembler
code for a source file
named filename.cpp will
be placed in a file
named filename.s.
3. To stop the process after
the assembly step, you
can use -c option:
g++ -c prog1.cpp
By default, the assembler
code for a source file
named filename.cpp will
be placed in a file
named filename.o.
A simple C++ Program
General Structure of C++ Program
“Hello World” in C++
Include standard
Use the standard namespace
iostream classes
using namespace std;
A C++ comment
#include <iostream>
// My first C++ program!
int main(void)
{
cout << "hello world!" << endl;
cout is an return 0;
instance of }
iostream
operator overloading
(two different argument types!)
Thank You