Object oriented programming
Object oriented programming
Syllabus:
Class and Objects: Introduction, member functions and data, objects and
functions, objects and arrays, Namespaces, Nested classes, Constructors,
Destructors.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Overview of C++
c++ is an extension of the C language, in that most C programs are also c++programs.
Most real world objects have internal parts (Data Members) and interfaces
Object:
An object is a collection of variables that hold the data and functions that operate
on the data.
The functions that operate on the data are called Member Functions.
In OOPs the data is tied more closely to the functions and does not allow the data
to flow freely around the entire program making the data more secure.
Compliers implementing OOP does not allow unauthorized functions to access the
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Only the associated functions can operate on the data and there is no change of
The main advantage of OOP is its capability to model real world problems.
Functions
Functions Functions
Communication
2. Classes
3. Data abstraction
4. Data encapsulation
5. Inheritance
6. Polymorphism
7. Binding
8. Message passing
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Objects with similar properties and methods are grouped together to form
class.
Data abstraction
Abstraction refers to the act of representing essential features without
including the background details or explanation.
Ex: Let's take one real life example of a TV, which you can turn on and off,
change the channel, adjust the volume, and add external components such as
speakers, VCRs, and DVD players, BUT you do not know its internal details,
that is, you do not know how it receives signals over the air or through a
cable, how it translates them, and finally displays them on the screen.
int main( )
{
cout << "Hello C++" <<endl;
return 0;
}
Here, you don't need to understand how cout displays the text on the user's
screen. You need to only know the public interface and the underlying
Data encapsulation
Information hiding
Wrapping (combining) of data and functions into a single unit (class) is known
as data encapsulation.
Data is not accessible to the outside world, only those functions which are
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Inheritance
Acquiring qualities.
The new class that is formed is called derived class, child or sub class.
Derived class has all the features of the base class plus it has some extra
features also.
Polymorphism
The dictionary meaning of polymorphism is “having multiple forms”.
Binding
Binding means connecting the function call to the function code to be
Static binding means that the code associated with the function call is linked
Dynamic binding means that the code associated with the function call is
Message passing
Objects communicate with one another by sending and receiving information.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Advantages of OOPS
Data security
Reusability of existing code
Creating new data types
Abstraction
Less development time
Reduce complexity
Better productivity
Benefits of OOP
Reusability
Saving of development time and higher productivity
Data hiding
Multiple objects feature
Easy to partition the work in a project based on objects.
Upgrade from small to large systems
Message passing technique for interface.
Software complexity can be easily managed.
Applications of OOP
Real time systems
Simulation and modeling
Object oriented databases
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Hypertext, hypermedia
AI (Artificial Intelligence)
Neural networks and parallel programming
Decision support and office automation systems
CIM/CAD/CAED system
Oriented Programming)
3. Procedures are being separated from Procedures are not separated from data,
together.
4. A piece of code uses the data to The data uses the piece of code to perform
5. Data is moved freely from one Data is hidden and can be accessed only by
parameters.
8. Debugging is the difficult as the code Debugging is easier even if the code size is
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Sl.No C C++
3. The data and functions are separate The data and functions are combined
inheritance etc.
equivalent C program
definitions
Since Cin and Cout are C++ objects, they are somewhat “Intelligent”.
They do not require the usual format strings and conversion specifications.
They do require the use of the stream extraction (>>) and insertion (<<) operators.
To get input from the keyboard we use the extraction operator and the object Cin.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
The compiler figures out the type of the variable and reads in the appropriate type.
o Example:
#include<iostream.h>
Void main( )
{
int x;
float y;
cin>> x;
cin>>y;
}
To send output to the screen we use the insertion operator on the object Cout.
Syntax: Cout<<variable;
Compiler figures out the type of the object and prints it out appropriately.
Example:
#include<iostream.h>
void main( )
{
cout<<5;
cout<<4.1;
cout<< “string”;
cout<< ‘\n’;
}
Programs
#include<iostream.h>
void main( )
{
int a,b;
float k;
char name[30];
cout<< “Enter your name \n”;
cin>>name;
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Output:
Enter your name
Mahesh
Enter two integers and a Float
10
20
30.5
Thank you Mahesh, you entered
10, 20 and 30.5
#include<iostream.h>
int main( )
{
int i;
cout<< “this is output\n”;
cout<< “Enter a number”;
cin>>i;
cout<<i<< “Square is” << i*i<<”\n”;
return 0;
}
Output:
This is output
Enter a number 5
5 square is 25
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Variables
Variable are used in C++, where we need storage for any value, which will change in
program. Variable can be declared in multiple ways each with different memory
requirements and functioning. Variable is the name of memory location allocated by the
Variable must be declared before they are used. Usually it is preferred to declare
them at the starting of the program, but in C++ they can be declared in the middle
Example :
char c;
int i; // declaration
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
i = 10; // initialization
If a variable is declared and not initialized by default it will hold a garbage value.
Also, if a variable is once declared and if try to declare it again, we will get a
int i,j;
i=10;
j=20;
int j=i+j; //compile time error, cannot redeclare a variable in same scope
Scope of Variables
All the variables have their area of functioning, and out of that boundary they don't hold
their value, this boundary is called scope of the variable. For most of the cases its
between the curly braces, in which variable is declared that a variable exists, not outside
Global Variables
Local variables
Global variables
Global variables are those, which are once declared and can be used throughout the
lifetime of the program by any class or any function. They must be declared outside the
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
main() function. If only declared, they can be assigned different values at different time
in program lifetime. But even if they are declared and initialized at the same time outside
the main() function, then also they can be assigned any value at any point in the program.
include <iostream>
int main()
Local Variables
Local variables are the variables which exist only between the curly braces, in which its
declared. Outside that they are unavailable and leads to compile time error.
Example :
include <iostream>
int main()
int i=10;
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
declaration.
#include<iostream>
using namespace std;
int main()
{
int x = 10;
// ref is a reference to x.
int& ref = x;
return 0;
}
Output:
x = 20
ref = 30
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Functions in c++:
Definition: Dividing the program into modules, these modules are called as functions.
Where,
return_type:
Components of function:
Function definition
Return statement
Function call
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example:
#include<iostream.h>
int a, b, c;
cin>>a>>b;
cout<<c<<endl;
Function prototype:
The number and types of the arguments that must be supplied in a call to the
function.
Function prototyping is one of the key improvements added to the C++ functions.
When a function is encountered, the compiler checks the function call with its
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
It informs the compiler that the function max has 2 arguments of the type integer.
The function max( ) returns an integer value the compiler knows how many bytes to
Function definition:
The first line of the function definition is known as function declarator and is
The declarator and declaration must use the same function name, number of
{
if(x>y) //function body
return x;
else
return y;
}
Function call:
c= max (a, b) ;
Invokes the function max( ) with two integer parameters, executing the call
function body and after execution of the function body the control is resumed to
the statement following the function call. The max( ) returns the maximum of the
parameters a and b. the return value is assigned to the local variable c in main( ).
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Function parameters:
The parameters specified in the function call are known as actual parameters and
c=max(a,b);
Here a and b are actual parameters. The parameters x and y are formal
established between the actual and the formal parameters. In this case the value
Function return:
Functions can be grouped into two categories. Functions that do not have a return
and
the value returned by the function max( ) is assigned to the local variable c in main(
).
The return statement in a function need not be at the end of the function. It can
Argument passing:
Two types
1. Call by value
2. Call by reference
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Call by value:
The default mechanism of parameter passing( argument passing) is called call
by value.
Example 1:
#include<iostream.h>
void main( )
int a, b;
cin>>a>>b;
exchange(a,b);
int temp;
temp=x;
x=y;
y=temp;
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example 2:
#include<iostream.h>
void main( )
int a, b;
cin>>a>>b;
sub(a, b);
getch( );
Example 3:
#include<iostream.h>
void main( )
temp=add(a);
cout<<temp<<”,”<<a;
int add(int a)
{
a=a+a;
return a;
}
Output: 20
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Call by reference:
We pass address of an argument to the formal parameters.
Example 1:
#include<iostream.h>
void exchange(int *x, int *y);
void main( )
{
int a, b;
cout<< “enter values for a and b”; //10, 20
cin>>a>>b;
exchange(&a,&b);
cout<<a<<b; //output: 20,10
}
void exchange(int *x, int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
cout<<x<<y; // output: 20, 10
}
Example 2:
#include<iostream.h>
void main( )
{
int a=10, temp;
temp=add(&a);
cout<<temp<<”,”<<a;
getch();
}
int add(int *a)
{
a=*a+*a;
return a;
}
Output: 20
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Default arguments:
Example:
#include <iostream.h>
void main( )
{
add(1,2,3);
add(1,2);
add(1);
add( );
}
void add(int a, int b, int c)
{
cout<< a+b+c;
}
A default argument is checked for type at the time of declaration and evaluated at
the time of call.
We must add defaults from right to left.
We cannot provide a default value to a particular argument in the middle of an
argument list.
Example:
int mul (int i, int j=5, int k=10); //legal.
int mul (int i=5, int j); //illegal.
int mul (int i=0,int j, int k=10); //illegal.
int mul (int i=2, int j=5, int k=10); //legal.
Default arguments are useful in situations where some arguments always have the
same value.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Programming language is most popular language after C Programming language. C++ is first
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Actually this section can be considered as sub section for the global
declaration section.
Class declaration and all methods of that class are defined here
Main function:
Each and every C++ program always starts with main function.
This is entry point for all the function. Each and every method is called
Class specification:
A Class is way to bind(combine) the data and its associated functions together. it
When we define a class, we are creating a new abstract data type that can be
class class_name
{
access specifier: data
};
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
The keyword class specifies that what follows is an abstract data of type
semicolon.
PUBlic:
Protected:
Note:
By default data and member functions declared within a class are private.
Variables declared inside the class are called as data members and functions
are called as member functions. Only member functions can have access to data
The binding of functions and data together into a single class type variable is
referred as EncapSUlation.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example:
#include<iostream.h>
class student
{
private:
char name[10]; // private variables
int marks1,marks2;
public:
void getdata( ) // public function accessing private members
{
cout<<”enter name,marks in two subjects”;
cin>>name>>marks1>>marks2;
}
void display( ) // public function
{
cout<<”name:”<<name<<endl;
cout<<”marks”<<marks1<<endl<<marks2;
}
}; // end of class
void main( )
{
student obj1;
obj1.getdata( );
obj1.display( );
}
Output:
Enter name,marks in two subjects
Mahesh 25 24
Name: Mahesh
Marks 25 24
In the above program,class name is student,with private data members name,marks1 and
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Functions,the getdata( ) accepts name and marks in two subjects from user and display( )
Scope resolution operator links a class name with a member name in order to tell
Syntax to define the member functions outside the class using Scope resolution
operator:
Example:
#include<iostream.h>
class student
{
private:
char name[10]; // private variables
int marks1,marks2;
public:
void getdata( );
void display( );
};
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
void main( )
{
student obj1;
obj1.getdata( );
obj1.display( );
}
Example:
#include<iostream.h>
int a=100; // declaring global variable
class x
{
int a;
public:
void f( )
{
a=20; // local variable
cout<<a; // prints value of a as 20
}
};
void main( )
{
x g;
g.f( ); // this function prints value of a(local variable) as 20
cout<<::a; // this statement prints value of a(global variable) as 100
}
In the above program,the statement ::a prints global variable value of a as 100.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
#include<iostream.h>
class item
{
private:
int number,cost;
public:
void getdata(int a,int b );
void display( );
};
output:
number:10
cost:20
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Access members
Class members(variables(data) and functions) Can be accessed through an object
Private members can be accessed by the functions which belong to the same class.
Object_name.function_name(actual arguments);
#include<iostream.h>
class item
{
Private: int a;
public: int b;
};
void main( )
{
item i1,i2;
i1.a=10; // illegal private member cannot be accessed outside the class
i2.b=20;
cout<<i2.b; // this statement prints value of b as 20.
}
Note: private members cannot be accessed outside the class but public members can be
accessed.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example: private members can be accessed by the functions which belongs to the
same class
#include<iostream.h>
class item
{
int a=10; // private member
public:
void display( )
{
cout<<a; // it prints a as10
}
};
void main( )
{
item i1;
i1.display( );
}
A member function can call another function directly, without using dot operator.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example:
#include<iostream.h>
class item
{
private:
int cost,number;
public:
void getdata(int a,int b ) // defining function inside the class
{
number=a;
cost=b;
}
void display( )
{
cout<<”cost:”<<number<<endl;
cout<<”number:”<<cost<<endl;
}
};
void main( )
{
item i1;
i1.getdata(10,30 );
i1.display( );
}
output:
number:10
cost:30
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Two or more functions have the same names but different argument lists. The
arguments may differ in type or number, or both. However, the return types of
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#define pi 3.14
class fn
{
public:
void area(int); //circle
void area(int,int); //rectangle
void area(float ,int,int); //triangle
};
void fn::area(int a)
{
cout<<"Area of Circle:"<<pi*a*a;
}
void fn::area(int a,int b)
{
cout<<"Area of rectangle:"<<a*b;
}
void fn::area(float t,int a,int b)
{
cout<<"Area of triangle:"<<t*a*b;
}
void main()
{
int ch;
int a,b,r;
clrscr();
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
fn obj;
cout<<"\n\t\tFunction Overloading";
cout<<"\n1.Area of Circle\n2.Area of Rectangle\n3.Area of Triangle\n4.Exit\n:”;
cout<<”Enter your Choice:";
cin>>ch;
switch(ch)
{
case 1:
cout<<"Enter Radious of the Circle:";
cin>>r;
obj.area(r);
break;
case 2:
cout<<"Enter Sides of the Rectangle:";
cin>>a>>b;
obj.area(a,b);
break;
case 3:
cout<<"Enter Sides of the Triangle:";
cin>>a>>b;
obj.area(0.5,a,b);
break;
case 4:
exit(0);
}
getch();
}
permitted.
Only one copy of the data member is created for the entire class and is shared by
all the objects of class. no matter how many objects are created.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Static variables are normally used to maintain values common to entire class
objects.
Example
class item
{
static int count; // static data member
int number;
public:
void getdata( )
{
number=a;
count++;
}
void putdata( )
{
cout<<”count value”<<count<<endl;
}
};
void main( )
{
item i1,i2,i3; // count is initialized to zero
i1.putdata( );
i2.putdata( );
i3.putdata( );
i1.getdata( );
i2.getdata( );
i3.getdata( );
i1.putdata( ); // display count after reading data
i2.putdata( );
i3.putdata( );
}
Output:
Count value 0
Count value 0
Count value 0
Count value 3
Count value 3
Count value 3
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
In the above program,the static variable count is initialized to zero when objects
times getdata( ) is called,so 3 times count value is created.all the 3 objects will have
count value as 3 because count variable is shared by all the objects,so all the last 3
statements in
i1 i2 i3
3
Count(common for all objects)
A static member function can have access to only other static members
A static member function can be called using the class name, instead of objects.
Syntax:
class_name : : function_name ;
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Example:
class item
{
int number;
static int count;
public:
void getdata(int a )
{
number=a;
count++;
}
static void putdata( )
{
cout<<”count value”<<count;
}
};
void main( )
{
item i1,i2;
i1.getdata(10);
i2.getdata(20);
item::putdata( );
// call static member function using class name with scope resolution operator.
}
Output:
Count value 2
In the above program, we have one static data member count, it is initialized to
zero, when first object is created, and one static member function putdata( ),it can
count as 2.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Inline functions:
First control will move from calling to called function. Then arguments will be
pushed on to the stack, then control will move back to the calling from called
function.
When a function is declared as inline, compiler replaces function call with function
code.
Example:
#include<iostream.h>
void main( )
{
cout<< max(10,20);
cout<<max(100,90);
getch( );
}
inline int max(int a, int b)
{
if(a>b)
return a;
else
return b;
}
Output: 20
100
Note: inline functions are functions consisting of one or two lines of code.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Arrays of Objects:
It is possible to have arrays of objects.
The syntax for declaring and using an object array is exactly the same as it is for
Program:
#include<iostream.h>
class c1
{
int i;
public:
void get_i(int j)
{
i=j;
}
void show( )
{
cout<<i<<endl;
}
};
void main( )
{
c1 obj[3]; // declared array of objects
for(int i=0;i<3;i++)
obj[i].get_i(i);
for(int i=0;i<3;i++)
obj[i].show( );
}
In the above program,we have declared object obj as an array of objects[i.e created 3
objects].
obj[i].get_i(i);
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
invokes get_i( ) function 3 times,each time it stores value of i in the index of obj[i].that is
after the execution of complete loop,the array of object “obj” looks like this:
obj[i].show( );
output: 0
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Namespace
Namespace is a new concept introduced by the ANSI C++ standards committee. For using
identifiers it can be defined in the namespace scope as below.
Syntax:
In the above syntax "std" is the namespace where ANSI C++ standard class libraries are
defined. Even own namespaces can be defined.
Syntax:
namespace namespace_name
{
//Declaration of variables, functions, classes, etc.
}
Example :
#include <iostream.h>
using namespace std; namespace Own
{
int a=100;
}
int main()
{
cout << "Value of a is:: " << Own::a;
return 0;
}
Result :
In the above example, a name space "Own" is used to assign a value to a variable. To get
the value in the "main()" function the "::" operator is used.
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Nested class is a class defined inside a class that can be used within the scope of the
class in which it is defined. In C++ nested classes are not given importance because of the
strong and flexible usage of inheritance. Its objects are accessed using "Nest::Display".
Example :
#include <iostream.h>
class Nest
{
public:
class Display
{
private:
int s;
public:
void sum( int a, int b)
{
s =a+b;
}
void show( )
{
cout << "\nSum of a and b is:: " << s;
}
}; //closing of inner class
}; //closing of outer class
void main()
{
Nest::Display x; // x is a object, objects are accessed using "Nest::Display".
x.sum(12, 10);
x.show();
}
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Constructors
object.
class A
{
int x;
public: A(); //Constructor
};
While defining a contructor you must remeber that the name of constructor will be
same as the name of the class, and contructors never have return type.
Constructors can be defined either inside the class definition or outside class
class A
{
int i;
public:
A(); //Constructor declared
};
Types of ConstrUCTors
1. Default Constructor
2. Parametrized Constructor
3. Copy Constructor
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
DeFAULT ConstrUCTor
Default constructor is the constructor which doesn't take any argument. It has no
parameter.
Syntax :
class_name ()
{
Constructor Definition
}
Example :
class Cube
{
int side;
public: Cube() //constructor
{
side=10;
}
};
int main()
{
Cube c; //constructor is going to call
cout << c.side;
}
Output : 10
In this case, as soon as the object is created the constructor is called which initializes its
data members.
class Cube
{
int side;
};
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
int main()
{
Cube c;
cout << c.side;
}
Output : 0
In this case, default constructor provided by the compiler will be called which will initialize
the object data members to default value, that will be 0 in this case.
Parameterized ConSTRUCTor
These are the constructors with parameter. Using this Constructor you can provide
different values to data members of different objects, by passing the appropriate values
as argument.
Example :
class Cube
{
int side;
public:
Cube(int x)
{
side=x;
}
};
int main()
{
Cube c1(10);
Cube c2(20);
Cube c3(30);
cout << c1.side;
cout << c2.side;
cout << c3.side;
}
OUTPUT : 10 20 30
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
By using parameterized construcor in above case, we have initialized 3 objects with user defined
values. We can have any number of parameters in a constructor.
copy constructor
an original existing object.It is used to initialize one object from another of the same
type.
Example :
#include<iostream>
using namespace std;
class copycon
{
int copy_a,copy_b; // Variable Declaration
public:
copycon(int x,int y)
{
//Constructor with Argument
copy_a=x;
copy_b=y; // Assign Values In Constructor
}
void Display()
{
cout<<"\nValues :"<< copy_a <<"\t"<< copy_b;
}
};
int main()
{
copycon obj(10,20);
copycon obj2=obj; //Copy Constructor
cout<<"\nI am Constructor";
obj.Display(); // Constructor invoked.
cout<<"\nI am copy Constructor";
obj2.Display();
return 0;
}
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
Result :
I am Constructor
Values:10 20
I am Copy Constructor
Values:10 20
Constructor Overloading
Just like other member functions, constructors can also be overloaded. In fact
when you have both default and parameterized constructors defined in your class
you are having Overloaded Constructors, one with no parameter and other with
parameter.
You can have any number of Constructors in a class that differ in parameter list.
class Student
{
int rollno;
string name;
public:
Student(int x)
{
rollno=x;
name="None";
}
Student(int x, string str)
{
rollno=x ;
name=str ;
}
};
int main()
{
Student A(10);
Student B(11,"Ram");
}
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
In above case we have defined two constructors with different parameters, hence
One more important thing, if you define any constructor explicitly, then the compiler will
not provide default constructor and you will have to define it yourself.
In the above case if we write Student S; in main(), it will lead to a compile time error,
because we haven't defined default constructor, and compiler will not provide its default
Destructors
Destructor is a special class function which destroys the object as soon as the
scope of object ends. The destructor is called automatically by the compiler when
the object goes out of scope.
The syntax for destructor is same as that for the constructor, the class name is
used for the name of destructor, with a tilde ~ sign as prefix to it.
class A
{
public:
~A();
};
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
~A()
{
cout << "Destructor called";
}
};
int main()
{
A obj1; // Constructor Called
int x=1
if(x)
{
A obj2; // Constructor Called
} // Destructor Called for obj2
} // Destructor called for obj1
Questions
1. State the important features of object oriented programming. Compare object oriented
3. Write the general form of function. Explain different argument passing techniques with
example
4. Define function overloading. Write a C++ program to define three overloaded functions to
swap two integers, swap two floats and swap two doubles
5. Write a C++ program to overload the function area() with three overloaded function to find
parameterized constructor with default values for the class distance with data members
sd
Reji Thomas Sri Sairam College of Engineering
Object Oriented Concepts-Module 1 18CS45
10. What is parameterized constructor. Explain different ways of passing parameters to the
constructor
11. Implement a C++ program to find prime number between 200 and 500 using for loop.
13. What is class?how it is created? Write a c++ program to create a class called Employee
with data members name age and salary. Display atleast 5 employee information
14. What is nested class? What is its use? Explain with example.
15. What is static data member?explain with example. What is the use of static members
16. Write a class rectangle which contains data items length and breadth and member
functions setdata() getdata() displaydata(),area() to set length and breadth, to take user
sd
Reji Thomas Sri Sairam College of Engineering