Upload
sunil-kumar-yadav
View
262
Download
0
Embed Size (px)
Citation preview
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 1/87
Developed by Partha Roy Page 1
C++ Programs
1. Program to show the use of "enum" data type
2. Program to show the use of Pointer to Constant and Constant Pointer
3. Program to show the use of Reference Variables.
4. Program to show the use of Extern Variables
5. Program to show the use of New and Delete operator
6. Program to show Function Overloading
7. Program to show Call By Value, Call by Address and Call By Reference
8. Program to show the use of Default Arguments
9. Program to show the use of const arguments
10. Program to show return by Reference11. Program to show the use Pointer to Function
12. Program to show the use of Class and Object
13. Program to show the use of Static Members
14. Program to show the use of Friend Functions
15. Program to show the use of Friend Class
16. Program to show the use of Const Member Functions
17. Program to show the use of Inner Classes
18. Program to show the use of Default Constructor
19. Program to show the use of Parameterised Constructor with overloading
20. Program to show the use of Copy Constructor
21. Program to show the use of Destructors
22. Program to show how a Destructor can be called Explicitly.
23. Program to show the use of Operator Overloading(Operator +=)
24. Program to show the use of Operator Overloading (Operator + and =)
25. Program to show the use of Operator Overloading (Operator ++)
26. Program to show Operator Overloading using Friend functions
27. Program to show the use of Operator Overloading ( << operator)
28. Program to show the Overloading of int() typecast operation
29. Program to show the use of Public, Private and Protected Modes
30. Program to show Single Level Public Inheritance
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 2/87
Developed by Partha Roy Page 2
31. Program to show Single Level Private Inheritance
32. Program to show Single Level Protected Inheritance
33. Program to show the use of Multilevel (Public) Inheritance
34. Program to show the use of Multiple (Public) Inheritance
35. Program to show the use of Hierarchical (Public) Inheritance
36. Program to show Hybrid Public Inheritance37. Program to show the calling of Constructors during Single Level
Inheritance
38. Program to show the calling of Constructors during Multilevel Inheritance
39. Program to show the calling of Constructors during Multiple Inheritance
40. Program to show the calling of Constructors during Hierarchical
Inheritance
41. Program to show the use of Pointer to Objects
42. Program to show the use of Virtual Functions
43. Program to show the use of Pure Virtual Functions and Abstract class
44. Program to show the use of width(),fill() & precision() functions
45. Program to show the use of open(),close(),put(),get() & eof() Disk File IO
functions
46. Program to show the use of seekp(),seekg(),tellp() & tellg() Disk File IO
functions
47. Program to show the use of read() & write() Disk IO Functions48. Program to show the use of Template Functions
49. Program to show the use of Template Classes
50. Program to show the use of Throw, Try and Catch statements
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 3/87
Developed by Partha Roy Page 3
Experiment No. 1
#include<iostream.h>
#include<conio.h>
#include<dos.h>
// Program to Show the use of "enum" data type
main()
{
enum day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};
int dy;
cout<<"\nEnter Day:- ";
cin>>dy;
switch(dy)
{
case Sun: cout<<"\nSUNDAY"; break;
case Mon: cout<<"\nMONDAY"; break;
case Tue: cout<<"\nTUESDAY"; break;
case Wed: cout<<"\nWEDNUSDAY"; break;
case Thu: cout<<"\nTHURSDAY"; break;
case Fri: cout<<"\nFRIDAY"; break;case Sat: cout<<"\nSATURDAY"; break;
default: cout<<"Invalid Day";
}
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 4/87
Developed by Partha Roy Page 4
Experiment No. 2
#include<iostream.h>
#include<conio.h>
#include<dos.h>
// Program to Show the use of Pointer to Constant and Constant Pointer
main()
{
clrscr();
int a=10;
int b=20;
int c=30;
// Constant Pointer
int* const p=&a;
cout<<"\n*p= "<<*p;
*p=100;
cout<<"\na= "<<a;
// p=&b; This can not be done as pointer p is a const pointer.
//Pointer to Constant
const int *q=&b;
q=&a;cout<<"\n*q= "<<*q;
q=&b;
// *q=200; This can not be done as pointer q is a pointer to constant
// so using q we can not change the value of b;
cout<<"\n*q= "<<*q;
//Constant Pointer to Constant
const int* const z=&c;
// z=&b; This can not be done as its const pointer
// *z=100; This can not be done as its pointer to constant
cout<<"\n*z= "<<*z;
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 5/87
Developed by Partha Roy Page 5
Experiment No. 3
#include<iostream.h>
#include<conio.h>
// Program to show the use of Reference Variables.
main()
{
clrscr();
int a=10;
int &r=a;
cout<<"\nr= "<<r;
cout<<"\na= "<<a;
a=100;
cout<<"\nr= "<<r;
cout<<"\na= "<<a;
r=200;
cout<<"\nr= "<<r;
cout<<"\na= "<<a;
getch();}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 6/87
Developed by Partha Roy Page 6
Experiment No. 4
#include<iostream.h>
#include<conio.h>
// Program to show the use of Extern Variables
void fun()
{
extern int a;
cout<<"\nFrom fun Function a= "<<a;
}
int a=100;
main()
{
clrscr();
extern int a;
cout<<"\nFrom main Function a= "<<a;
fun();
getch();}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 7/87
Developed by Partha Roy Page 7
Experiment No. 5
#include<iostream.h>
#include<conio.h>
// Program to show the use of New and Delete operator
main()
{
clrscr();
int *p,*q,*r;
int val,max;
p=new int;
cout<<"\nEnter a Value:- ";
cin>>*p;
cout<<"\n *p= "<<*p;
delete p;
cout<<"\nEnter a Value:- ";
cin>>val;q=new int(val);
cout<<"\n *q= "<<*q;
delete q;
cout<<"\nEnter Max Items:- ";
cin>>max;
r=new int[max];
for(int i=0;i<max;i++)
{
cout<<"\nEnter value no "<<i+1<<" ";
cin>>r[i];
}
cout<<"\nEntered values are ";
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 8/87
Developed by Partha Roy Page 8
for(i=0;i<max;i++)
{
cout<<" "<<r[i];
}
delete []p; /* This is also possible
for(i=0;i<max;i++)
delete (int*) r[i];
*/
delete r;
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 9/87
Developed by Partha Roy Page 9
Experiment No. 6
#include<iostream.h>
#include<conio.h>
// Program to show Function Overloading
void add(int a, int b)
{
cout<<"\nFrom add function with 2 arguments a+b:- "<<a+b;
}
void add(int a, int b, int c)
{
cout<<"\nFrom add function with 3 arguments a+b+c:- "<<a+b+c;
}
main()
{
clrscr();
add(10,20);
add(10,20,30);
getch();}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 10/87
Developed by Partha Roy Page 10
Experiment No. 7
#include<iostream.h>
#include<conio.h>
// Program to show the use of Call by Value, Call by Address & Call by Reference
void CallByVal(float a)
{
a=100; // The local variable "a" 's value is changed locally
}
void CallByAdd(int *p)
{
*p=200; // The pointer "p" changes the value of the variable whose address
// it has
}
void CallByRef(int &r)
{
r=300; // The reference variable "r" changes the value of the
// original variable, whose reference it was created
}
main(){
clrscr();
int a=10;
cout<<a;
CallByVal((float)a);
cout<<a;
CallByAdd(&a);
cout<<a;
CallByRef(a);
cout<<a;
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 11/87
Developed by Partha Roy Page 11
Experiment No. 8
#include<iostream.h>
#include<conio.h>
// Program to show the use of Default Arguments
void fun(int a, int b=1)
{
if(b==1)
{
cout<<"\nUsing default value 1 for second argument";
}
cout<<"\na+b= "<<a+b;
}
main()
{
clrscr();
fun(10,20);
fun(10);getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 12/87
Developed by Partha Roy Page 12
Experiment No. 9
#include<iostream.h>
#include<conio.h>
//Program to show the use of const arguments
void fun(const int i)
{
cout<<"\ni= "<<i;
// i=100; This can not be done as "i" is declared as constant
}
main()
{
clrscr();
fun(200);
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 13/87
Developed by Partha Roy Page 13
Experiment No. 10
#include<iostream.h>
#include<conio.h>
// Program to show return by Reference
int& Greater(int &r1,int &r2)
{
if(r1>r2)
{
return r1;
}
else
{
return r2;
}
}
main()
{
clrscr();
int a,b;
cout<<"\nEnter data for a= ";
cin>>a;
cout<<" Enter data for b= ";
cin>>b;
Greater(a,b)=100; // Here the greater value containing variable will
//be returned and so its value
//would be replaced by 100
(to show the property of reference somevalue should be assigned to it)
9to
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 14/87
Developed by Partha Roy Page 14
if(a==100)
{
cout<<"\na>b";
}else
{
cout<<"\nb>a";
}
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 15/87
Developed by Partha Roy Page 15
Experiment No. 11
#include<iostream.h>
#include<conio.h>
// Program to show the use Pointer to Function
void Add(int a, int b)
{
cout<<a+b;
}
main()
{
clrscr();
void(*p)(int,int)=Add;// Assigning the address of a Function to a Pointer
// Here the *p should be enclosed in ()
(*p)(10,20); // While calling also () is required to first de-reference
// p and then the call is initiated with the input arguments
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 16/87
Developed by Partha Roy Page 16
Experiment No. 12
#include<iostream.h>
#include<conio.h>
// Program to show the use of Class and Object
class MyClass
{
int data;// Private data member.
//They can not be accessed from outside the class definition.
public:
void fill() // Public function member
{
cout<<"\nEnter value for data= ";
cin>>data; // "data" accessible inside the class
}
void show(); // The Member functions can be defined outside the class
};
void MyClass::show()
{
cout<<"\ndata= "<<data; //"data" is accessible because the declaration of show()
is
// inside the class
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 17/87
Developed by Partha Roy Page 17
main()
{
clrscr();
MyClass ob1; //"ob1" object created from class MyClass
// object "ob1" would contain a copy
//of the entire class definitionob1.fill();
ob1.show();
// fill() and show() are public members so are accessible outside the class
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 18/87
Developed by Partha Roy Page 18
Experiment No. 13
#include<iostream.h>
#include<conio.h>
// Program to show the use of Static Members
class MyClass
{
static int cnt;
public:
static void count() // static member functions can only access
// static data members
{
cnt+=1;
}
void show()
{
cout<<"\nOutput from show() function :- count() called "<<cnt<<" times"; // non static functions can access static members
}
};
int MyClass::cnt;
// This creates the static member and initilizes it to 0
// This initilization is invoked only when the first object of
// the class is created
(should be declared just ouytside class)
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 19/87
Developed by Partha Roy Page 19
main()
{
clrscr();
MyClass ob1;
ob1.show();MyClass::count();// This is the only way to call/use static members
ob1.show();
MyClass::count();
ob1.show();
MyClass::count();
ob1.show();
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 20/87
Developed by Partha Roy Page 20
Experiment No. 14
#include<iostream.h>
#include<conio.h>
// Program to show the use of Friend Functions
class MyClass2;
class MyClass1
{
int a;
public:
void fill()
{
cout<<"\nEnter data for MyClass1:- ";
cin>>a;
}
friend void show(MyClass1 ob1, MyClass2 ob2);
};
class MyClass2
{int b;
public:
void fill()
{
cout<<"\nEnter data for MyClass2:- ";
cin>>b;
}
friend void show(MyClass1 ob1, MyClass2 ob2);
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 21/87
Developed by Partha Roy Page 21
void show(MyClass1 ob1, MyClass2 ob2)
{
cout<<"\nPrivate data of MyClass1:- "<<ob1.a;
cout<<"\nPrivate data of MyClass2:- "<<ob2.b;
}
main(){
clrscr();
MyClass1 ob1;
MyClass2 ob2;
ob1.fill();
ob2.fill();
show(ob1,ob2);
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 22/87
Developed by Partha Roy Page 22
Experiment No. 15
#include<iostream.h>
#include<conio.h>
// Program to show the use of Friend Class
class MyClass1
{
int a;
friend class MyClass2;
};
class MyClass2
{
public:
void fill(MyClass1 &ob)
{
cout<<"\nEnter data for MyClass1:- ";
cin>>ob.a;
}
void show(MyClass1 ob)
{cout<<"\nData of MyClass1 from MyClass2:- "<<ob.a;
}
};
main()
{
clrscr();
MyClass1 ob1;
MyClass2 ob2;
ob2.fill(ob1);
ob2.show(ob1);
getch();
}
//pass by reference
//varriables in one class and functions in other class
//since class2 is sa friend of class1so it can access its private memberd directly through objectand no need of public functions
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 23/87
Developed by Partha Roy Page 23
Experiment No. 16
#include<iostream.h>
#include<conio.h>
// Program to show the use of Const Member Functions
class MyClass
{
int a;
public:
void fill()
{
cout<<"\nEnter data for MyClass:- ";
cin>>a;
}
void show() const
{
// a=100; This cannot be done as show() is a const function
cout<<"\nData of MyClass:- "<<a;
}};
main()
{
clrscr();
MyClass ob;
ob.fill();
ob.show();
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 24/87
Developed by Partha Roy Page 24
Experiment No. 17
#include<iostream.h>
#include<conio.h>
// Program to show the use of Inner Classes
class MyClass1
{
int a;
class MyClass2
{
int b;
public:
void fill()
{
cout<<"\nEnter Data for MyClass2:- ";
cin>>b;
}void show()
{
cout<<"\nData of MyClass2:- "<<b;
}
}ob1;
public:
void fill()
{
cout<<"\nEnter Data for MyClass1:- ";
cin>>a;
ob1.fill();
}
mainly used to secure data of one class from another &when it is needed that any operation on ne data will automati-cally do the same on other,
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 25/87
Developed by Partha Roy Page 25
void show()
{
cout<<"\nData of MyClass1:- "<<a;
ob1.show();
}};
main()
{
clrscr();
MyClass1 ob;
MyClass1::MyClass2 ob2;
ob.fill();
ob.show();
ob2.fill();
ob2.show();
getch();
}
we can make object of inner class of private part like this
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 26/87
Developed by Partha Roy Page 26
Experiment No. 18
#include<iostream.h>
#include<conio.h>
//Program to show the use of Deafult Constructors
class MyClass
{
int a;
public:
MyClass()
{
cout<<"\nDefault Constructor Invoked";
a=10;
}
void show()
{
cout<<"\nThe data in MyClass:- "<<a;
}
};main()
{
clrscr();
MyClass ob1;
MyClass ob2=MyClass();
MyClass *op1;// This will Not invoke the Constructor function
// But "MyClass *op1=new MyClass();" this will invoke the constructor
ob1.show();
ob2.show();
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 27/87
Developed by Partha Roy Page 27
Experiment No. 19
#include<iostream.h>
#include<conio.h>
// Program to show the use of Parameterised Constructor with overloading
class MyClass
{
int a;
public:
MyClass()
{
cout<<"\nDefault Constructor Invoked";
a=10;
}
MyClass(int z)
{
cout<<"\nParameterised Constructor Invoked";a=z;
}
void show()
{
cout<<"\nData in MyClass:- "<<a;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 28/87
Developed by Partha Roy Page 28
main()
{
clrscr();
MyClass ob1,ob2(100); //This is called Implicit call to the constructor
MyClass ob3;// This way also objects can be created //This called Explicit call to the constructor
ob3=MyClass(200);
ob1.show();
ob2.show();
ob3.show();
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 29/87
Developed by Partha Roy Page 29
Experiment No. 20
#include<iostream.h>
#include<conio.h>
// Program to show the use of Copy Constructor
class MyClass
{
int a;
// The accessibility of a constructor depends upon the
// access mode under which it had been declared
public:
MyClass(){}// This default constructor is needed for creating simple objects
MyClass(MyClass &ob)
{
cout<<"\nCopy Constructor Called";
a=ob.a;
}void fill()
{
cout<<"\nEnter data for MyClass:- ";
cin>>a;
}
void show()
{
cout<<"\nThe data of MyClass:- "<<a;
}
};
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 30/87
Developed by Partha Roy Page 30
main()
{
clrscr();
MyClass ob1,ob2;
ob1.fill();ob2.fill();
ob1.show();
ob2.show();
MyClass ob3(ob1);//Here we can also use = to invoke the COPY
CONSTRUCTOR
//i.e during INITIALIZATION not during ASSIGNMETNT
ob3.show();
ob3.show();
getch();
}
Edited by Foxit ReaderCopyright(C) by Foxit Software Company,2005-2007For Evaluation Only.
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 31/87
Developed by Partha Roy Page 31
Experiment No. 21
#include<iostream.h>
#include<conio.h>
#include<string.h>
//Program to show the use of Destructors
class MyClass
{
char obname[20];
public:
MyClass(char *onm)
{
cout<<"\nDefault Constructor Invoked for object name:"<<onm;
strcpy(obname,onm);
}
~MyClass()
{
cout<<"\nDestructor Invoked for Object:- "<<obname;
}
};main()
{
clrscr();
MyClass ob1("First"),ob2("Second"),ob3("Third");
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 32/87
Developed by Partha Roy Page 32
Experiment No. 22
#include<iostream.h>
#include<conio.h>
#include<string.h>
// Program to show how a Destructor can be called Explicitly.
class A{
char obname[20];
public:
A(char *nm)
{
cout<<"\nContructor Called";
strcpy(obname,nm);
cout<<"\nObject Name:- "<<obname;
}
~A()
{
cout<<"\nDestructor Called "<<this->obname;
}
};
main(){
clrscr();
A ob1("Object1");
cout<<"\n";
A ob2=A("Object2");
cout<<"\n";
ob1.A::~A(10);
cout<<"\n";
ob2.A::~A(20);
cout<<"\n";
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 33/87
Developed by Partha Roy Page 33
Experiment No. 23
#include<iostream.h>
#include<conio.h>
// Program to show the use of Operator Overloading (Unary Operator +=)
class MyClass
{
int a;
public:
void fill()
{
cout<<"\nEnter the data for MyClass ";
cin>>a;
}
void show()
{
cout<<"\nThe data of MyClass "<<a;
} //The calling object is the operand in the L.H.S of the operator +=
//and the input argument is the R.H.S operand of the operator +=
void operator +=(MyClass ob)
{
a=a+ob.a;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 34/87
Developed by Partha Roy Page 34
main()
{
clrscr();
MyClass ob1,ob2;
ob1.fill();ob2.fill();
ob1.show();
ob2.show();
ob1+=ob2;// " ob1.operator +=(ob2); " can also be used
cout<<"\nAfter +=:- ";
ob1.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 35/87
Developed by Partha Roy Page 35
Experiment No. 24
#include<iostream.h>
#include<conio.h>
// Program to show the use of Operator Overloading (Binary Operator + and =)
class MyClass
{
int a;
public:
void fill()
{
cout<<"\nEnter the data for MyClass ";
cin>>a;
}
void show()
{
cout<<"\nThe data of MyClass "<<a;}
// Here the object in the LHS is the operand calling this function
// The object in the RHS is the operand as the input argument of this function
// The returned object is the resulting object due to the operation "+"
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 36/87
Developed by Partha Roy Page 36
MyClass operator +(MyClass ob)
{
cout<<"\nOverloaded '+' operator called ";
MyClass tmp;
tmp.a=a+ob.a;}
void operator =(MyClass ob)
{
cout<<"\nOverloaded '=' operator called ";
a=ob.a;
}
};
main()
{
clrscr();
MyClass ob1,ob2,ob3;
ob1.fill();
ob2.fill();
ob1.show();
ob2.show();ob3=ob1+ob2;//Equivalent calling " ob3.operator =(ob1.operator +(ob2)); "
cout<<"\nAfter Add:- ";
ob3.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 37/87
Developed by Partha Roy Page 37
Experiment No. 25
#include<iostream.h>
#include<conio.h>
// Program to show the use of Operator Overloading (Operator ++)
class MyClass
{
int a;
public:
void fill()
{
cout<<"\nEnter the data for MyClass ";
cin>>a;
}
void show()
{
cout<<"\nThe data of MyClass "<<a;}
void operator ++() //Here the calling object itself is the Operand
{
cout<<"\nOverloaded '++' operator called ";
a+=1;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 38/87
Developed by Partha Roy Page 38
main()
{
clrscr();
MyClass ob1;
ob1.fill();ob1.show();
ob1++; //Here we can use " ob1.operator++(); " to do the same thing
cout<<"\nAfter ++:- ";
ob1.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 39/87
Developed by Partha Roy Page 39
Experiment No. 26
#include<iostream.h>#include<conio.h>
//Program to show Operator Overloading using Friend functions
class A{
int a;public:A(){a=10;
} //LHS + //RHS
friend void operator +(A &ob1, A&ob2){
cout<<"\n"<<ob1.a+ob2.a;}
//operandfriend void operator ++(A &ob){ob.a+=1;cout<<"\n"<<ob.a;
}};main(){
clrscr();A ob1,ob2;
//LHS + //RHSob1 + ob2;
//operandob1++;
getch();}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 40/87
Developed by Partha Roy Page 40
Experiment No. 27
#include<iostream.h>
#include<conio.h>
// Program to show the use of Operator Overloading ( << operator)
class MyClass{
int a;
public:
void fill()
{
cout<<"\nEnter data for MyClass ";
cin>>a;
}
// Here we need to use the Friend keyword for two input parameters
// This is because the original cout<< syntax will only allow single
// input parameter.
// For allowing parameters of two different classes i.e ostream and MyClass
// we need to make it Friend.
friend ostream& operator << (ostream &out,MyClass ob)
{out<<"\nData in MyClass "<<ob.a;
return out;
}
};
main()
{
clrscr();
MyClass ob1;
ob1.fill();
cout<<ob1;
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 41/87
Developed by Partha Roy Page 41
Experiment No. 28
#include<iostream.h>
#include<conio.h>
// Program to show the Overloading of int() typecast operation
class MyClass
{
int a;
public:
operator int()// Overloading "int()" operation
{
return a;
}
MyClass(int z)
{
a=z;
}
};main()
{
clrscr();
MyClass ob1(100);
int in=int(ob1); //Overloaded "int()" Operator called
cout<<in;
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 42/87
Developed by Partha Roy Page 42
Experiment No. 29
#include<iostream.h>
#include<conio.h>
// Program to show the use of Public,Private and Protected Modes
class MyClass
{
private:
int a;
void fill()
{
cout<<"\nEnter data for MyClass:- ";
cin>>a;
}
protected:
void show()
{
cout<<"\nData of MyClass:- "<<a;
}
public:
void callfill()
{
fill(); // Calling "fill()" which is defined under Private mode
}
void callshow()
{
show(); // Calling "show()" which is defined under Protected mode
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 43/87
Developed by Partha Roy Page 43
main()
{
clrscr();
MyClass ob1;
// ob1.fill(); "fill()" is not accessible from outside the class // as it is under private mode
// ob1.show(); "show()" is not accessible from outside the class
// as it is under protected mode
ob1.callfill(); //"callfill()" is accessible as its under public mode
ob1.callshow(); //"callshow()" is accessible as its under public mode
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 44/87
Developed by Partha Roy Page 44
Experiment No. 30
#include<iostream.h>
#include<conio.h>
// Program to show Single Level Public Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;}
};
class Child:public Parent
{
int b;
public:
void fill()
{
cout<<"\nEnter data for Child Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 45/87
Developed by Partha Roy Page 45
void show()
{
cout<<"\nData of Child Class:- "<<b;
}
};
main()
{
clrscr();
Child c1;
//Here the Child class functions are used
c1.fill();
c1.show();
cout<<"\n";
//Here Parent class functions are used through Child class Onjects
c1.Parent::fill();
c1.Parent::show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 46/87
Developed by Partha Roy Page 46
Experiment No. 31
#include<iostream.h>
#include<conio.h>
// Program to show Single Level Private Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;}
};
class Child:private Parent
{
int b;
public:
void ParentFill()
{
Parent::fill(); //It is under Private mode
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 47/87
Developed by Partha Roy Page 47
void ParentShow()
{
Parent::show(); //It is under Private mode
}
void fill()
{cout<<"\nEnter data for Child Class:- ";
cin>>b;
}
void show()
{
cout<<"\nData of Child Class:- "<<b;
}
};
main()
{
clrscr();
Child c1;
//Here the Child class functions are used
c1.fill();c1.show();
cout<<"\n";
c1.ParentFill();
c1.ParentShow();
/* Here Parent class functions can not be called as they all are private
in Child class.
c1.Parent::fill();
c1.Parent::show();
*/
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 48/87
Developed by Partha Roy Page 48
Experiment No. 32
#include<iostream.h>
#include<conio.h>
// Program to show Single Level Protected Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;
}
};
class Child:protected Parent
{
int b;
public:
void ParentFill()
{
Parent::fill(); // Its under Protected mode
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 49/87
Developed by Partha Roy Page 49
void ParentShow()
{
Parent::show(); // Its under Protected mode
}
void fill()
{cout<<"\nEnter data for Child Class:- ";
cin>>b;
}
void show()
{
cout<<"\nData of Child Class:- "<<b;
}
};
main()
{
clrscr();
Child c1;
//Here the Child class functions are used
c1.fill();c1.show();
cout<<"\n";
c1.ParentFill();
c1.ParentShow();
/* Here Parent class functions can not be called as they all are
under Protected mode in the Child class.
c1.Parent::fill();
c1.Parent::show();
*/
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 50/87
Developed by Partha Roy Page 50
Experiment No. 33
#include<iostream.h>
#include<conio.h>
// Program to show the use of Multilevel Public Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;
}
};
class Child1 : public Parent
{
int b;
public:
void fill()
{
cout<<"\nEnter data for Child1 Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 51/87
Developed by Partha Roy Page 51
void show()
{
cout<<"\nData of Child1 Class:- "<<b;
}
};
class Child2 : public Child1
{
int c;
public:
void ParentFill()
{
Parent::fill();
}
void ParentShow()
{
Parent::show();
}
void Child1Fill()
{Child1::fill();
}
void Child1Show()
{
Child1::show();
}
void fill()
{
cout<<"\nEnter data for Child2 Class:- ";
cin>>c;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 52/87
Developed by Partha Roy Page 52
void show()
{
cout<<"\nData of Child2 Class:- "<<c;
}
};main()
{
clrscr();
Child2 c2;
c2.fill();
c2.show();
cout<<"\n";
c2.Child1Fill();
c2.Child1Show();
cout<<"\n";
c2.ParentFill();
c2.ParentShow();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 53/87
Developed by Partha Roy Page 53
Experiment No. 34
#include<iostream.h>
#include<conio.h>
// Program to show the use of Multiple Public Inheritance
class Parent1
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent1 Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent1 Class:- "<<a;
}
};
class Parent2
{
int b;
public:
void fill()
{
cout<<"\nEnter data for Parent2 Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 54/87
Developed by Partha Roy Page 54
void show()
{
cout<<"\nData of Parent2 Class:- "<<b;
}
};
class Child:public Parent1, public Parent2
{
int c;
public:
void ParentFill()
{
Parent1::fill();
Parent2::fill();
}
void ParentShow()
{
Parent1::show();
Parent2::show();
}
void fill(){
cout<<"\nEnter data for Child Class:- ";
cin>>c;
}
void show()
{
cout<<"\nData of Child Class:- "<<c;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 55/87
Developed by Partha Roy Page 55
main()
{
clrscr();
Child c;
c.fill();c.show();
cout<<"\n";
c.ParentFill();
c.ParentShow();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 56/87
Developed by Partha Roy Page 56
Experiment No. 35
#include<iostream.h>
#include<conio.h>
//Program to show Hierachical Public Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;
}
};
class Child1:public Parent
{
int b;
public:
void fill()
{
cout<<"\nEnter data for Child1 Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 57/87
Developed by Partha Roy Page 57
void show()
{
cout<<"\nData of Child1 Class:- "<<b;
}
void fillParent(){
Parent::fill();
}
void showParent()
{
Parent::show();
}
};
class Child2:public Parent
{
int c;
public:
void fill()
{cout<<"\nEnter data for Child2 Class:- ";
cin>>c;
}
void show()
{
cout<<"\nData of Child2 Class:- "<<c;
}
void fillParent()
{
Parent::fill();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 58/87
Developed by Partha Roy Page 58
void showParent()
{
Parent::show();
}
};
main()
{
clrscr();
Child1 c1;
Child2 c2;
c1.fill();
c1.show();
cout<<"\n";
c2.fill();
c2.show();
cout<<"\n";
c1.fillParent();
c1.showParent();
cout<<"\n";c2.fillParent();
c2.showParent();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 59/87
Developed by Partha Roy Page 59
Experiment No. 36
#include<iostream.h>
#include<conio.h>
//Program to show Hybrid Public Inheritance
class Parent
{
int a;
public:
void fill()
{
cout<<"\nEnter data for Parent Class: ";
cin>>a;
}
void show()
{
cout<<"\nData of Parent Class:- "<<a;
}
};
class ChildR:virtual public Parent
{
int b;
public:
void fill()
{
cout<<"\nEnter data for ChildR Class: ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 60/87
Developed by Partha Roy Page 60
void show()
{
cout<<"\nData of ChildR Class:- "<<b;
}
void fillParent()
{Parent::fill();
}
void showParent()
{
Parent::show();
}
};
class ChildL:virtual public Parent
{
int c;
public:
void fill()
{
cout<<"\nEnter data for ChildL Class: ";cin>>c;
}
void show()
{
cout<<"\nData of ChildL Class:- "<<c;
}
void fillParent()
{
Parent::fill();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 61/87
Developed by Partha Roy Page 61
void showParent()
{
Parent::show();
}
};
class ChildM:public ChildR, public ChildL
{
int d;
public:
void fill()
{
cout<<"\nEnter data for ChildM Class: ";
cin>>d;
}
void show()
{
cout<<"\nData of ChildM Class:- "<<d;
}
void fillParent()
{ChildR::fill();
ChildL::fill();
Parent::fill();
}
void showParent()
{
ChildR::show();
ChildL::show();
Parent::show();
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 62/87
Developed by Partha Roy Page 62
main()
{
clrscr();
ChildM cm;
cm.fill();cm.show();
cout<<"\n";
cm.fillParent();
cm.showParent();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 63/87
Developed by Partha Roy Page 63
Experiment No. 37
#include<iostream.h>
#include<conio.h>
//Program to show the calling of Constructors during Single Level Inheritance
class Parent
{
int a;
public:
Parent(int z)
{
a=z;
}
void show()
{
cout<<"\nData of Parent Class "<<a;
}
};
class Child:public Parent{
int b;
public:
Child(int x, int y):Parent(y)
{
b=x;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 64/87
Developed by Partha Roy Page 64
void show()
{
cout<<"\nData of Child Class "<<b;
Parent::show();
}};
main()
{
clrscr();
Child c(10,20);
c.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 65/87
Developed by Partha Roy Page 65
Experiment No. 38
#include<iostream.h>
#include<conio.h>
//Program to show the calling of Constructors during Multilevel Inheritance
class Parent
{
int a;
public:
Parent(int z)
{
a=z;
}
void show()
{
cout<<"\nData of Parent Class "<<a;
}
};
class Child1:public Parent{
int b;
public:
Child1(int x, int y):Parent(y)
{
b=x;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 66/87
Developed by Partha Roy Page 66
void show()
{
cout<<"\nData of Child1 Class "<<b;
Parent::show();
}
};
class Child2:public Child1
{
int c;
public:
Child2(int x, int y, int z):Child1(y,z)
{
c=x;
}
void show()
{
cout<<"\nData of Child2 Class "<<c;
Child1::show();
}
};
main()
{
clrscr();
Child2 c(10,20,30);
c.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 67/87
Developed by Partha Roy Page 67
Experiment No. 39
#include<iostream.h>
#include<conio.h>
//Program to show the calling of Constructors during Multiple Inheritance
class Parent1
{
int a;
public:
Parent1(int z)
{
a=z;
}
void show()
{
cout<<"\nData of Parent1 Class "<<a;
}
};
class Parent2{
int b;
public:
Parent2(int x)
{
b=x;
}
void show()
{
cout<<"\nData of Parent2 Class "<<b;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 68/87
Developed by Partha Roy Page 68
class Child:public Parent1,public Parent2
{
int c;
public:
Child(int x, int y, int z):Parent1(y),Parent2(z){
c=x;
}
void show()
{
cout<<"\nData of Child Class "<<c;
Parent1::show();
Parent2::show();
}
};
main()
{
clrscr();
Child c(10,20,30);c.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 69/87
Developed by Partha Roy Page 69
Experiment No. 40
#include<iostream.h>
#include<conio.h>
//Program to show the calling of Constructors during Hierarchical Inheritance
class Parent
{
int a;
public:
Parent(int z)
{
a=z;
}
void show()
{
cout<<"\nData of Parent Class "<<a;
}
};
class Child1:public Parent{
int b;
public:
Child1(int x, int y):Parent(y)
{
b=x;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 70/87
Developed by Partha Roy Page 70
void show()
{
cout<<"\nData of Child1 Class "<<b;
Parent::show();
}};
class Child2:public Parent
{
int c;
public:
Child2(int x, int y):Parent(y)
{
c=x;
}
void show()
{
cout<<"\nData of Child2 Class "<<c;
Parent::show();
}};
main()
{
clrscr();
Child1 c1(10,20);
c1.show();
Child2 c2(30,40);
c2.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 71/87
Developed by Partha Roy Page 71
Experiment No. 41
#include<iostream.h>
#include<conio.h>
//Program to show the use of Pointer to Objects
class A
{
int a;
public:
A()
{
cout<<"Class A constructor Called ";
}
void fill()
{
cout<<"\nEnter data for Class A :- ";
cin>>a;
}void show()
{
cout<<"\nData of Class A:- "<<a;
}
};
class B
{
int b;
public:
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 72/87
Developed by Partha Roy Page 72
void fill()
{
cout<<"\nEnter data for Class B :- ";
cin>>b;
}void show()
{
cout<<"\nData of Class B:- "<<b;
}
};
class C:public A
{
int c;
public:
void fill()
{
cout<<"\nEnter data for Class C :- ";
cin>>c;
}
void show(){
cout<<"\nData of Class A:- "<<c;
}
void fun()
{
fill();
show();
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 73/87
Developed by Partha Roy Page 73
main()
{
clrscr();
A *p;
B ob;C ob2;
// p=&ob; //This cannot be done as class A is no way related to class B;
p=&ob2;
// Observe here that fill() and show() functions are declared in Class A
// as well as Class B
p->fill();// Although "p" has the address "ob2" but it would
p->show();// invoke the fill() and show() functions of its own class
//i.e class A.
// p->fun(); //This would cause an error as "p" can invoke only those
// functions which are in Class A because "p" is of type A
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 74/87
Developed by Partha Roy Page 74
Experiment No. 42
#include<iostream.h>
#include<conio.h>
//Program to show the use of Virtual Functions
class Parent
{
int a;
public:
virtual void fill()
{
cout<<"\nEnter data for Parent Class:- ";
cin>>a;
}
virtual void show()
{
cout<<"\nData of Parent Class:- "<<a;
}
};
class Child:public Parent
{
int b;
public:
void fill()
{
cout<<"\nEnter data for Child Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 75/87
Developed by Partha Roy Page 75
void show()
{
cout<<"\nData of Child Class:- "<<b;
}
};main()
{
clrscr();
Parent *p;
Child c;
p=&c;
p->fill();
p->show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 76/87
Developed by Partha Roy Page 76
Experiment No. 43
#include<iostream.h>
#include<conio.h>
//Program to show the use of Pure Virtual Functions and Abstract class
class Parent
{
public:
// Functions fill() & show() are Pure Virtual Functions
// This causes Class Parent to become Abstract.
// Any class inheriting this class would automatically become Abstract
// To avoid this the child class should define the functions.
virtual void fill()=0;
virtual void show()=0;
};
class Child1:public Parent
{
int b;
public: // fill() and show() functions are not defined
// So the Child class has automatically become ABSTRACT
// Objects of Abstract classes cannot be created.
void c1fill()
{
cout<<"\nEnter data for Child1 Class:- ";
cin>>b;
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 77/87
Developed by Partha Roy Page 77
void c1show()
{
cout<<"\nData of Child1 Class:- "<<b;
}
};class Child2:public Child1
{
public:
// Now Child1 class is Abstract as Child2 has inherited Child1
// so Child2 will also become Abstract.
// To avoid this we would define the fill() and show() functions.
// Here the prototypes should strictly match.
void fill()
{
cout<<"\nfill() function defined in Child2 ";
c1fill();
}
void show()
{
cout<<"\nshow() function defined in Child2 ";c1show();
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 78/87
Developed by Partha Roy Page 78
main()
{
clrscr();
// Child1 c1; This would create an error as Objects of Abstract Classes
// cannot be created.Child2 c2;
c2.fill();
c2.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 79/87
Developed by Partha Roy Page 79
Experiment No. 44
#include<iostream.h>
#include<conio.h>
//Program to show the use of width(),fill() & precision() functions
main()
{
clrscr();
float a,b,c;
cout<<"\nEnter a Float value :- ";
cin>>a;
cout<<"\nEnter a Float value :- ";
cin>>b;
cout<<"\nEnter a Float value :- ";
cin>>c;
cout<<"\nThe Entered Values Are:-\n";
cout.width(20);
cout.fill('!');
cout.precision(3);
cout<<a;cout.width(20);
cout.fill('$');
cout.precision(2);
cout<<b;
cout.width(20);
cout.fill('#');
cout.precision(1);
cout<<c;
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 80/87
Developed by Partha Roy Page 80
Experiment No. 45
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
//Program to show the use of open(),close(),put(),get() & eof() Disk File IOfunctions
main()
{
clrscr();
fstream f;
char c1;
f.open("c:\\Test.txt",ios::out);//Opening file "c:\Test.txt" in write only mode
for(int i=1;i<=5;i++)
{
cout<<"\nEnter a Character:- ";
cin>>c1;
f.put(c1);//putting one character at a time into the file
}
f.close();f.open("c:\\Test.txt",ios::in);//Opening file "c:\Test.txt" in read only mode
char c2;
while(!f.eof()) //eof() returns zero value when eof is not encountered
//otherwise it returns non zero value when eof is encountered.
{
f.get(c2);//getting one character at a time from the file
cout<<c2;
}
f.close();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 81/87
Developed by Partha Roy Page 81
Experiment No. 46
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
//Program to show the use of seekp(),seekg(),tellp() & tellg() Disk File IO
functions
main()
{
clrscr();
fstream f;
char c1;
f.open("c:\\Test2.txt",ios::out);//Opening file "c:\Test2.txt" in write mode
for(int i=1;i<=6;i++)
{
cout<<"\nEnter a Character:- ";
cin>>c1;
f.put(c1);//putting one character at a time into the file
}cout<<"\n";
char c2;
cout<<"\nUsing tellg() function:- "<<f.tellg();
cout<<"\nUsing tellp() function:- "<<f.tellp();
//f.seekp(0,ios::beg);
f.seekg(0,ios::beg);
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 82/87
Developed by Partha Roy Page 82
cout<<"\nUsing f.seekp(0,ios::beg) and then tellp() function:- "<<f.tellp();
cout<<"\nUsing f.seekg(0,ios::beg) and then tellg() function:- "<<f.tellg();
// f.seekp(1,ios::beg);
f.seekg(1,ios::beg);
cout<<"\nUsing seekp(1,ios::beg) and then tellp() function:- "<<f.tellp();cout<<"\nUsing seekg(1,ios::beg) and then tellg() function:- "<<f.tellg();
f.get(c1);
cout<<"\nUsing get(char) function:- "<<c1;
f.seekp(1,ios::cur);
f.seekg(1,ios::cur);
cout<<"\nUsing seekp(1,ios::cur) and then tellp() function:- "<<f.tellp();
cout<<"\nUsing seekg(2,ios::cur) and then tellg() function:- "<<f.tellg();
f.get(c1);
cout<<"\nUsing get(char) function:- "<<c1;
f.close();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 83/87
Developed by Partha Roy Page 83
Experiment No. 47
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
//Program to show the use of read() & write() Disk IO Functions
class Student
{
char name[40];
int roll;
public:
void fill()
{
cout<<"\nEnter The Name of the Student:- ";
gets(name);
cout<<"\nEnter Roll Number:- ";
cin>>roll;
}
void show(){
cout<<"\nThe Name of the Student:- ";
puts(name);
cout<<"\nRoll Number:- "<<roll;
}
};
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 84/87
Developed by Partha Roy Page 84
main()
{
clrscr();
fstream f;
Student CSE;f.open("c:\\Test3.txt",ios::app);//Opening the file in Append Mode
for(int i=1;i<=3;i++)
{
CSE.fill();
f.write((char*)&CSE, sizeof(CSE));
}
cout<<"\nWriting Data into File....\n";
f.close();
Student Temp;
f.open("c:\\Test3.txt",ios::in);//Opening the file in Read Mode
cout<<"\nReading Data From File....\n";
while(!f.eof())
{
f.read((char*)&Temp, sizeof(Temp));Temp.show();
}
f.close();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 85/87
Developed by Partha Roy Page 85
Experiment No. 48
#include<iostream.h>
#include<conio.h>
//Program to show the use of Template Functions
template<class T1,class T2>
void tfun(T1 a, T2 b)
{
cout<<"\nEnter data for a:- ";
cin>>a;
cout<<"\nEnter data for b:- ";
cin>>b;
cout<<"\nData of a:- "<<a;
cout<<"\nData of b:- "<<b;
};
main()
{
clrscr();
int x;float y;
tfun(x,y);
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 86/87
Developed by Partha Roy Page 86
Experiment No. 49
#include<iostream.h>
#include<conio.h>
//Program to show the use of Template Classes
template<class T1,class T2>
class MyClass
{
T1 a;
T2 b;
public:
void fill()
{
cout<<"\nEnter data for a:- ";
cin>>a;
cout<<"\nEnter data for b:- ";
cin>>b;
}
void show()
{cout<<"\nData of a:- "<<a;
cout<<"\nData of b:- "<<b;
}
};
main()
{
clrscr();
MyClass<int,float> ob1;
ob1.fill();
ob1.show();
getch();
}
8/14/2019 Edited by Foxit Reader Copyright(C) by Foxit
http://slidepdf.com/reader/full/edited-by-foxit-reader-copyrightc-by-foxit 87/87
Experiment No. 50
#include<iostream.h>
//Program to show the use if Throw, Try and Catch statements
main()
{
try
{
throw(10);
/*Here the exception argument is an integer value 10, So it can be
caught by that case which has int in the parameter list, here implicit
type conversion is possible */
}
catch(int a)
{
cout<<"\nException Caught:- "<<a;
}cout<<"\n";
}