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 V alue, 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 Reference 11. 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 Reader Copyright(C) by Foxit Software Company,2005-2007 For Evaluation Only.

Edited by Foxit Reader Copyright(C) by Foxit

Embed Size (px)

Citation preview

Page 1: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 2: Edited by Foxit Reader Copyright(C) by Foxit

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

Page 3: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 4: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 5: Edited by Foxit Reader Copyright(C) by Foxit

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();}

Page 6: Edited by Foxit Reader Copyright(C) by Foxit

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();}

Page 7: Edited by Foxit Reader Copyright(C) by Foxit

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 ";

Page 8: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 9: Edited by Foxit Reader Copyright(C) by Foxit

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();}

Page 10: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 11: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 12: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 13: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 14: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 15: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 16: Edited by Foxit Reader Copyright(C) by Foxit

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

}

Page 17: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 18: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 19: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 20: Edited by Foxit Reader Copyright(C) by Foxit

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);

};

Page 21: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 22: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 23: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 24: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 25: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 26: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 27: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 28: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 29: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 30: Edited by Foxit Reader Copyright(C) by Foxit

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.

Page 31: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 32: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 33: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 34: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 35: Edited by Foxit Reader Copyright(C) by Foxit

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 "+"

Page 36: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 37: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 38: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 39: Edited by Foxit Reader Copyright(C) by Foxit

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();}

Page 40: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 41: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 42: Edited by Foxit Reader Copyright(C) by Foxit

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

}

};

Page 43: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 44: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 45: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 46: Edited by Foxit Reader Copyright(C) by Foxit

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

}

Page 47: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 48: Edited by Foxit Reader Copyright(C) by Foxit

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

}

Page 49: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 50: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 51: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 52: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 53: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 54: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 55: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 56: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 57: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 58: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 59: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 60: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 61: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

};

Page 62: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 63: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 64: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 65: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 66: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 67: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 68: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 69: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 70: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 71: Edited by Foxit Reader Copyright(C) by Foxit

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:

Page 72: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

};

Page 73: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 74: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 75: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 76: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

Page 77: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

};

Page 78: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 79: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 80: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 81: Edited by Foxit Reader Copyright(C) by Foxit

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);

Page 82: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 83: Edited by Foxit Reader Copyright(C) by Foxit

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;

}

};

Page 84: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 85: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 86: Edited by Foxit Reader Copyright(C) by Foxit

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();

}

Page 87: Edited by Foxit Reader Copyright(C) by Foxit

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";

}