Friday, November 20, 2015

Virtual Functions Programs:I II III

#include<iostream.h>
class Base
{
public:
int b;
void show()
{
cout<<"\n Hello I m in Base";
}
};

class Derv:public Base
{
public:
int d;
void show()
{
cout<<"\n Hello I m in Derv";
}
}  ;


int main()
{
Base B, *bptr;
Derv D,*dptr;

//CASE I
bptr=&B;
bptr->show(); // In Base

//CASE II
bptr=&D;
bptr->show(); // In Base

//CASE III
//dptr=&B; //Not OK, cant convert

//CASE IV
dptr=&D;
dptr->show();           //In Derv

}



==============================
#include<iostream.h>
class Base
{
public:
int b;
void show()
{
cout<<"\n Hello I m in Base show";
}
virtual void disp()
{
cout<<"\n Hello I m in Base disp";
}
virtual void display()
{
cout<<"\n Hello I m in Base display";
}
};
class Derv:public Base
{
public:
int d;
void show()
{
cout<<"\n Hello I m in Derv show";
}
void disp()
{
cout<<"\n Hello I m in Derv disp";
}
}  ;


int main()
{
Base B, *bptr;
Derv D,*dptr;
B.show();        //Base
B.disp();       // Base
B.display();    //Base

D.show();        //Derv
D.disp();       //Derv
D.display();    //Base


bptr=&B;
bptr->show(); // In Base
bptr->disp(); // In Base //////********
bptr->display();  // In Base

bptr=&D;
bptr->show(); // In Base
bptr->disp(); // In Derv   ////////*********
bptr->display(); // In Base

//////*****This is run time polymorphism
}
=================


#include<iostream.h>
class Figure
{
public:
virtual void showarea(){};
};
class Tri:public Figure
{
public:
void showarea()
{
cout<<"\n Hello I m in Triangle";
}
}  ;


class Rect:public Figure
{
public:
void showarea()
{
cout<<"\n Hello I m in Rectangle";
}
}  ;


class Square:public Figure
{
public:
void showarea()
{
cout<<"\n Hello I m in Square";
}
}  ;


int main()
{
Figure *fptr[3];
Tri T;
Rect R;
Square S;
fptr[0]=&T;
fptr[1]=&R;
fptr[2]=&S;
for(int i=0;i<3;i++)
{
fptr[i]->showarea();
}
}

No comments:

Post a Comment