Basic Oop (College File)
Basic Oop (College File)
#include<iostream>
using namespace std;
class Cube
{
public
:
int side;
int getVolume();
};
int Cube :: getVolume()
{
return side*side*side;
}
int main()
{
Cube obj;
obj.side = 4;
cout<<"Volume of Cube = "<<obj.getVolume()<<endl;
2. Write a program for implementing nesting of member functions.
#include<iostream>
using namespace std;
class nest
{
int a;
int square_num( )
{
return a* a;
}
public:
void input_num( )
{
cout<<"\nEnter a number ";
cin>>a;
}
int cube_num( )
{
return a* a*a;
}
void disp_num()
{
int sq=square_num(); //nesting of member function
int cu=cube_num(); //nesting of member function
cout<<"\nThe square of "<<a<<" is " <<sq;
cout<<"\nThe cube of "<<a<<" is " <<cu;
}
};
int main()
{
nest n1;
n1.input_num();
n1.disp_num();
return 0;
}
3. Program for accessing private member functions from a class.
#include<iostream>
using namespace std;
class A
{
private:
void private_display()
{
cout<<"Private member function of class A";
}
public:
void public_display()
{
private_display();
}
};
int main()
{
A obj;
obj.public_display();
}
4. Program for implementing static member function inside a class.
#include <iostream>
using namespace std;
void Test(){
static int x = 1;
x = ++x;
int y = 1;
y = ++y;
cout<<"x = "<<x<<"\n";
cout<<"y = "<<y<<"\n";
}
int main()
{
Test();
Test();
return 0;
}
5. Write a program for implementing static data member inside the class
#include <iostream>
#include<string.h>
using namespace std;
class Student
{
private:
int rollNo;
char name[10];
int marks;
public:
static int objectCount;
Student()
{
objectCount++;
}
void getdata()
{
cout << "Enter roll number: "<<endl;
cin >> rollNo;
cout << "Enter name: "<<endl;
cin >> name;
cout << "Enter marks: "<<endl;
cin >> marks;
}
void putdata()
{
cout<<"Roll Number = "<< rollNo <<endl;
cout<<"Name = "<< name <<endl;
cout<<"Marks = "<< marks <<endl;
cout<<endl;
}
};
int Student::objectCount = 0;
int main(void) {
Student s1;
s1.getdata();
s1.putdata();
Student s2;
s2.getdata();
s2.putdata();
Student s3;
s3.getdata();
s3.putdata();
cout << "Total objects created = " << Student::objectCount << endl;
return 0;
}
EN E P i ogi a'u° 'J^'*Jg C + +’ de'ete exe
6. Write a program for implementing array of objects.
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
class Showroom{
private :
char name[50];
float price;
public :
void getinfo()
{
cout<<"Entre name of bike : ";
cin.getline(name,50);
cout<<"Entre price in lakhs : ";
cin>>price;
}
void display()
{
cout<<"Bike name : "<<name<<endl;
cout<<"Price of bike : "<<price<<" Lakhs"<<endl;
}
};
int main()
{
Showroom obj[20];
int i,size;
cout<<"Entre number of bikes : ";
cin>>size;
for(i=0;i<size;i++)
{
getchar();
obj[i].getinfo();
}
for(i=0;i<size;i++)
{
cout<<"\n\n\n";
obj[i].display();
}
}
7. Write a program for implementing objects as functional arguments.
#include <iostream>
using namespace std;
class Demo
{
private:
int a;
public:
void set(int x)
{
a = x;
}
void print()
{
cout<<"Value of A : "<<a<<endl;
}
};
int main()
{
//object declarations
Demo d1;
Demo d2;
Demo d3;
return 0;
}
8. Write a program for implementing default constructor.
#include<iostream>
class student_information
{
public:
int rollno;
string name;
student_information()
{
cout<<"Enter roll number = ";
cin>>rollno;
cout<<"Enter name = ";
cin>>name;
int main()
{
student_information s;
return 0;
}
E.TP ogfamm IngTC + +odelete.exe
Ente n name = Nam an
Ente c en11 numb ec = 21d
Rod1 no i s = 2T4
Naate T s = Nanan
#include<iostream>
using namespace std;
class AREA
{
float radius;
public:
AREA(float r)
{
radius=r;
cout<<"Area of circle = "<<3.14*radius*radius<<endl;
}
};
int main()
{
float r;
cout<<"Enter the radius = ";
cin>>r;
AREA a(r);
return 0;
}
E.TP ogfamm IngTC + +odelete.exe
Enten the radiv s = 69
A n oI c i n c le = ld9d9 . 5
es
10. Program for implementing copy constructor.
#include<iostream>
using namespace std;
class AREA
{
float radius;
public:
AREA(float r)
{
radius=r;
}
float calculatearea()
{
return 3.14*radius*radius;
}
};
int main()
{
float r1,r2;
cout<<"Enter the radius of circle 1= ";
cin>>r1;
cout<<"Enter the radius of circle 2= ";
cin>>r2;
AREA a(r1);
AREA b(r2);
cout<<"\nArea of first circle = "<<a.calculatearea()<<endl;
cout<<"Area of second circle = "<<a.calculatearea()<<endl;
return 0;
}
11. Program for implementing constructor overloading.
#include <iostream>
using namespace std;
class Person
{
private:
int age;
public:
Person()
{
age = 20;
}
Person(int a)
{
age = a;
}
int getAge()
{
return age;
}
};
int main()
{
Person person1, person2(45);
#include <iostream>
using namespace
std; class
HelloWorld
{
public:
HelloWorld()
{
cout<<"Constructor is called"<<endl;
}
~HelloWorld()
{
cout<<"Destructor is called"<<endl;
}
void display()
{
cout<<"Hello World!"<<endl;
}
};
int main()
{
HelloWorld obj;
obj.display();
return 0;
}
E.QPro gla mm IngTC + +odelete.exe
Hello noold
Con st nuc to n T s ca1led
De sI nuc to n T s ca1led
#include<iostream>
using namespace std;
void fun()
{
class Test // local to fun
{
public:
void method()
{
cout << "Local Class method() called";
}
};
Test t;
t.method();
}
int main()
{
fun();
return 0;
}
E.\P og ammtng\C + +\delete exe
#include <iostream>
#include <string>
using namespace std;
int main()
{
int *ptr = NULL;
ptr = new int();
int *var = new int(12);
if(!ptr)
{
cout<<"bad memory allocation"<<endl;
}
else
{
cout<<"memory allocated successfully"<<endl;
*ptr = 10;
cout<<"*ptr = "<<*ptr<<endl;
cout<<"*var = "<<*var<<endl;
}
return 0;
}
15. Write a program for implementing Dynamic Constructor
#include <iostream>
using namespace
std; class geeks
{
const char* p;
public:
geeks()
{
p = new char[6];
p = "geeks";
}
void display()
{
cout << p << endl;
}
};
int main()
{
geeks obj = new geeks();
obj.display();
}
ge eks
class Student;
class Department
{
char* name_p;
public:
Department(char *dName)
{
cout<<"Department::ctor\n";
name_p = new char(sizeof(strlen(dName)));
name_p = dName;
}
~Department()
{
cout<<"Department::dtor\n";
delete(name_p);
}
};
class Student
{
char* name_p;
public:
Student(char *sName)
{
cout<<"Student::ctor\n";
name_p = new char(sizeof(strlen(sName)));
name_p = sName;
}
char* sName()const
{
return(name_p);
}
~Student()
{
cout<<"Student::dtor\n";
delete(name_p);
};
};
class Course
{
Student * std_p;
Department * dept_p;
char * courseName_p;
public:
if (index < 4)
{
courseName_p = new char(sizeof(strlen(crseName)));
courseName_p = crseName;
~Course()
{
cout<<"Course:dtor\n";
delete (courseName_p);
};
int main()
{
int i;
cout<<"\n";
cout<<"\n";
cout<<"Here class Course Associates Student and Department, with a Course name ...\n";
Course course1("DataStructure",studentNames[0], departNames[1]);
Course course2("Maths",studentNames[3], departNames[0]);
Course course3("Geometry",studentNames[2], departNames[0]);
Course course4("CA",studentNames[1], departNames[1]);
cout<<"\n";
cout<<"\n";
cout<<"Deletion of objects...\n\n";
for(i=0; i<4; ++i)
{
delete studentNames[i];
}
cout<<"\n";
cout<<"\n";
return(0);
}
17. Program for implementing the aggregation relationship
#include<iostream.h>
class Employee
{
public:
Employee(char *name)
{ cout<<"Employee::ctor\n
";
myName_p = new char(sizeof(strlen(name)));
myName_p = name;
}
char* disp(){return(myName_p);};
~Employee()
{
cout<<"Employee:dtor\n\n";
delete (myName_p);
}
private:
char *myName_p;
};
class Company
{
public:
Company(char * compName, Employee* emp){
cout<<"Company::ctor\n";
name = new char(sizeof(strlen(compName)));
name = compName;
myEmp_p = emp;
};
~Company()
{
cout<<"Company:dtor\n\n";
myEmp_p = NULL;
};
private:
char *name;
Employee *myEmp_p;
};
int main()
{
cout<<"\nExample of Aggregation Relationship \n";
cout<<" \n\n";
{
cout<<"Here, an Employee-Keerti works for Company-MS \n";
Employee emp("Keerti");
{
Company comp("MS", &emp);
} // here Company object will be deleted, whereas Employee object is still there
return(0);
}
18. Program for implementing the composition relationship
#include <iostream>
#include <vector>
using namespace std;
class PageObject {
public:
virtual void Add(PageObject a)
{
}
virtual void Remove()
{
}
virtual void Delete(PageObject a)
{
}
};
public:
void AddElement(PageObject a)
{
copyPages.push_back(a);
}
void Add(PageObject a)
{
cout << "something is added to the copy" << endl;
}
void Remove()
{
cout << "something is removed from the copy" << endl;
}
void Delete(PageObject a)
{
cout << "something is deleted from the copy";
}
};
int main()
{
Page a;
Page b;
Copy allcopy;
allcopy.AddElement(a);
allcopy.AddElement(b);
allcopy.Add(a);
a.Add(b);
allcopy.Remove();
b.Remove();
return 0;
}
19. Program for implementing single level inheritance.
#include<iostream>
using namespace std;
class Area{
protected :
int l,b;
public :
int getarea()
{
cout<<"Area : "<<l*b<<endl;
return l*b;
}
};
class Volume : public Area{
private :
int h;
public :
void setdata(int l ,int b,int h)
{
this->l = l;
this->b = b;
this->h = h;
}
int getvolume()
{
return getarea()*h;
}
};
int main()
{
Volume obj;
int l,b,h;
cout<<"Entre length breadth and hieght : ";
cin>>l>>b>>h;
obj.setdata(l,b,h);
cout<<"Volume : "<<obj.getvolume()<<endl;
}
20. Program for implementing Multilevel inheritance.
#include<iostream>
using namespace std;
class Area{
protected
: int l, b;
public :
int area()
{
return l*b;
}
};
class Volume : public Area{
protected :
int h;
public :
int volume()
{
return area()*h;
}
};
class Density : public Volume{
private :
float m;
public :
void setdata(int l,int b,int h,float m)
{
this->l = l;
this->b = b;
this->h = h;
this->m = m;
}
float density()
{
return m/volume();
}
};
int main()
{
Density obj;
int l,b,h;
float m;
cout<<"Entre l b h and m : ";
cin>>l>>b>>h>>m;
obj.setdata(l,b,h,m);
cout<<"Area : "<<obj.area()<<endl;
cout<<"Volume : "<<obj.volume()<<endl;
cout<<"Density : "<<obj.density()<<endl;
}
21. Program for implementing Multiple inheritance.
#include<iostream>
using namespace std;
class Dim1{
protected :
int l , b;
};
class Dim2 {
protected :
int h;
};
class Volume : public Dim1,public Dim2{
public :
void setdata(int l ,int b, int h)
{
this->l = l;
this->b = b;
this->h = h;
}
int getvolume()
{
return l*b*h;
}
};
int main()
{
Volume obj;
int l , b, h;
cout<<"Entre l b and h : ";
cin>>l>>b>>h;
obj.setdata(l,b,h);
cout<<"Volume : "<<obj.getvolume()<<endl;
}
22. Program for implementing Hierarchical inheritance.
#include<iostream>
using namespace std;
class Parent{
public:
void show()
{
cout<<"show() method of parent class"<<endl;
}
};
class child1 : public Parent{
public :
void display()
{
cout<<"display() method of child1 class"<<endl;
}
};
class child2 : public Parent{
public :
void draw()
{
cout<<"draw() method of child2 class"<<endl;
}
};
int main()
{
child1 c1;
c1.display();
c1.show();
child2 c2;
c2.draw();
c2.show();
}
23. Program for implementing Hybrid inheritance.
#include<iostream>
#include<string.h>
using namespace std;
class Student{
protected :
int rno;
char name[50];
};
class Marks : public Student{
protected :
int p,c,m;
};
class Sessional {
protected :
int in,ex;
};
class Result : public Marks,public Sessional{
public :
void setdata(char name[],int rno,int p,int c,int m,int in,int ex)
{
strcpy(this->name,name);
this->rno = rno;
this->p = p;
this->c = c;
this->m = m;
this->in = in;
this->ex = ex;
}
void display()
{
cout<<"\nStudent details : \n";
cout<<"Name : "<<name<<endl;
cout<<"Roll no : "<<rno<<endl;
cout<<"\n";
cout<<"Physics marks : "<<p<<endl;
cout<<"Chemistry marks : "<<c<<endl;
cout<<"Maths marks : "<<m<<endl;
cout<<"\n";
cout<<"Internal marks : "<<in<<endl;
cout<<"External marks : "<<ex<<endl;
cout<<"\n";
}
void result()
{
int total = p+c+m+in+ex;
cout<<"\n";
cout<<"Total : "<<total<<endl;
double per = total/5.0;
cout<<"Percentage : "<<per<<endl;
}
};
int main()
{
int rno,p,c,m,in,ex;
char name[50];
cout<<"Entre name : ";
cin.getline(name,50);
cout<<"Entre roll number : ";
cin>>rno;
cout<<"Entre p c m marks : ";
cin>>p>>c>>m;
cout<<"Entre int and ext marks : ";
cin>>in>>ex;
Result obj;
obj.setdata(name,rno,p,c,m,in,ex);
obj.display();
obj.result();
}
24. Program for implementing constructor and destructor in inheritance.
#include <iostream>
using namespace
std; class base1
{
public:
base1 (void)
{
cout << " constructor of class base1\n";
}
~base1 ()
{
cout << " destructor of class base1\n";
}
};
class base2
{
public:
base2(void)
{
cout << " constructor of class base2\n";
}
~base2()
{
cout << " destructor of class base2\n";
}
};
class derive1 : public base1, public base2
{
public:
derive1(void)
{
cout << " constructor of class derive1\n";
}
~derive1()
{
cout << " destructor of class derive1\n";
}
};
int main ()
{
derive1 x;
cout << " Destructors are: "<<endl;
}
25. Program for implementing function overloading.
#include <iostream>
using namespace std;
class Addition
{ public:
int sum(int num1,int num2) {
return num1+num2;
}
int sum(int num1,int num2, int num3) {
return num1+num2+num3;
}
};
int main(void) {
Addition obj;
cout<<obj.sum(20, 15)<<endl;
cout<<obj.sum(81, 100, 10);
return 0;
}
26. Program for implementing unary operator overloading.
#include<iostream>
using namespace std;
class Operatordemo{
private :
int a;
public :
Operatordemo()
{
cout<<"Entre value of a : ";
cin>>a;
}
void display()
{
cout<<"Value of a : "<<a<<endl;
}
void operator ++()
{
a = a * 10;
}
void operator --()
{
a = a / 10;
}
};
int main()
{
Operatordemo obj;
obj.display();
++obj;
cout<<"\nAfter overloading :- \n";
obj.display();
--obj;
cout<<"\nAfter overloading :- \n";
obj.display();
}
27. Program for implementing binary operator overloading.
#include<iostream>
#include<string.h>
using namespace std;
class String{
private :
char str[500];
public :
void getdata()
{
cout<<"Entre sting : ";
cin.getline(str,500);
}
void display()
{
cout<<"String : "<<str<<endl;
}
String operator+(String obj2)
{
String obj;
strcat(str,obj2.str);
strcpy(obj.str,str);
return obj;
}
};
int main()
{
String obj1,obj2,obj3;
obj1.getdata();
obj2.getdata();
obj1.display();
obj2.display();
obj3 = obj1 + obj2;
obj3.display();
}
28. Program for implementing dynamic polymorphism.
#include<iostream>
using namespace std;
class Parent{
public :
void show()
{
cout<<"show() method of parent class";
}
};
class child : public Parent{
public :
void show()
{
cout<<"show() method of child class";
}
};
int main()
{
child obj;
obj.show();
}
29. Program for implementing pure Virtual function.
#include<iostream>
#include<conio.h>
using namespace std;
class RBI{//ABSTRACT CLASS
public :
virtual double rate()=0; //PURE VIRTUAL FUNCTION
};
class SBI : public RBI{
public :
double rate()
{
return 1.23;
}
};
class BOI : public RBI{
public :
double rate()
{
return 2.03;
}
};
int main()
{
SBI s;
BOI b;
cout<<"SBI provides :
"<<s.rate()<<endl; cout<<"BOI provied :
"<<b.rate()<<endl; getch();
}
SBI provi d es : 1 . 23
BOI pro i ed 2.B3
30. Program for implementing virtual base class.
#include<iostream.h>
#include<conio.h>
class student {
int rno;
public:
void getnumber() {
cout << "Enter Roll No:";
cin>>rno;
}
void putnumber() {
cout << "\n\n\tRoll No:" << rno << "\n";
}
};
void getmarks() {
cout << "Enter Marks\n";
cout << "Part1:";
cin>>part1;
cout << "Part2:";
cin>>part2;
}
void putmarks() {
cout << "\tMarks Obtained\n";
cout << "\n\tPart1:" << part1;
cout << "\n\tPart2:" << part2;
}
};
void getscore() {
cout << "Enter Sports Score:";
cin>>score;
}
void putscore() {
cout << "\n\tSports Score is:" << score;
}
};
void display() {
total = part1 + part2 + score;
putnumber();
putmarks();
putscore();
cout << "\n\tTotal Score:" << total;
}
};
void main()
{ result obj;
clrscr();
obj.getnumber
();
obj.getmarks(
);
obj.getscore();
obj.display();
getch();
}