Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Polymorphism Programs

1. Virtual function
#include<iostream>
using namespace std;
class A
{
public:
virtual void f1()
{
cout<<"class A";
}
};
class B:public A
{
public:
void f1() // function overriding
{
cout<<"class B";
}
};
int main()
{
A *p,o1;
B o2;
o2.f1();
p=&o2;
p->f1();
}
2. Pure virtual function
#include<iostream>
using namespace std;
class person
{ public:
virtual void fun()=0; //pure virtual function
void f1()
{}
};
class student: public person
{ public:
void fun()
{cout<<"hello";}
};
int main()
{
person *p;
student o2;
o2.fun();
p=&o2;
p->fun();}
3. Virtual destructor
#include<iostream>
using namespace std;
class base
{
public:
base()
{
cout<<"constructor: base"<<"\n";
}
virtual ~base()
{
cout<<" Destructor: base"<<"\n";
}
};
class derived : public base
{
public:
derived()
{
cout<<"constructor: derived";
}
~derived()
{
cout<<" Destructor: derived";
}
};
int main()
{
base *Var = new derived();
delete Var;
}
4. Self referential classes
#include<iostream>
using namespace std;
class node
{
public:
int a;
node *next;
public:
void insert()
{
cin>>a;
}
void display()
{
cout<<a;
}

};
int main()
{
node n1,n2;
n1.insert();
n2.insert();
//linking
n1.next= &n2;
//traversing
node *ptr;
ptr=&n1;
ptr->display();
ptr=ptr->next;
ptr->display();
}

You might also like