0% found this document useful (0 votes)
17 views

Virtual Functioncontd

The document contains code examples demonstrating inheritance and polymorphism in C++. It shows base classes with derived classes that inherit and override virtual functions. Pointers to base classes are used to call functions on derived class objects to demonstrate polymorphic behavior.

Uploaded by

anuraaagsingh.45
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Virtual Functioncontd

The document contains code examples demonstrating inheritance and polymorphism in C++. It shows base classes with derived classes that inherit and override virtual functions. Pointers to base classes are used to call functions on derived class objects to demonstrate polymorphic behavior.

Uploaded by

anuraaagsingh.45
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

#include<iostream>

using namespace std;


class BC
{
public:
int b;
virtual void show()
{
cout<<"b="<<b<<"\n";
}
};
class DC :public BC
{
public:
int d;
void show()
{
cout<<"b="<<b<<"\n";
cout<<"d="<<d<<"\n";
}
};
int main()
{
BC *bptr;
BC bobj;
bptr=&bobj;
bptr->b=100;
bptr->show();
DC dobj;
bptr=&dobj;
bptr->b=200;
// bptr->d=300;//invalid
bptr->show();
DC *dptr;
dptr=&dobj;
dptr->show();
dptr->d=300;
//dptr->b=200;
dptr->show();
}
#include<iostream>
using namespace std;

class Base
{
int x;
public:
virtual void fun() = 0; //pure virtual function
int getX() { return x; }
};

// This class inherits from Base and implements fun()


class Derived: public Base
{
int y;
public:
void fun() { cout << "fun() called by derieved class"; }
};

int main(void)
{
Derived d;
d.fun();
// Base B;
// B.fun();
return 0;
}
#include <iostream>
using namespace std;

// Abstract class
class Shape {
protected:
float dimension;

public:
void getDimension() {
cin >> dimension;
}

// pure virtual Function


virtual float calculateArea() = 0;
};

// Derived class
class Square : public Shape {
public:
float calculateArea() {
return dimension * dimension;
}
};

// Derived class
class Circle : public Shape {
public:
float calculateArea() {
return 3.14 * dimension * dimension;
}
};

int main() {
Square square;
Circle circle;
Shape *ptr;
ptr=&square;
cout << "Enter the length of the square: ";
ptr->getDimension();
cout << "Area of square: " << ptr->calculateArea() << endl;
ptr=&circle;
cout << "\nEnter radius of the circle: ";
ptr->getDimension();
cout << "Area of circle: " << ptr->calculateArea() << endl;

return 0;
}

#include<iostream>
using namespace std;
class b
{
public:
void display()
{
cout<<"I am inside base class display function\n";
}
virtual void output();
{
cout<<"I am in side base class output function\n";
}
};
class d1 :public b
{
public:
void display()
{
cout<<"I am inside derieved d1 class display function\n";
}
virtual void output()=0;
/*{
cout<<"I am in side derieved d1 class output function\n";
}*/
};
class d2 :public d1
{
public:
void display()
{
cout<<"I am inside derieved d2 class display function\n";
}
void output(){
cout<<"I am in side derieved d2 class output function\n";
}
};
int main()
{
b *bptr;//valid
b obj1;//invalid because we cannot create obj1 of class which has pure virtual
d1 obj2;
d2 obj3;
bptr=&obj1;
bptr->display();// base class display();
bptr->output();//base class output();
bptr=&obj2;
bptr->display();//base class display();
bptr->output(); // d1's output()
bptr=&obj3;
bptr->display();//base class display();
bptr->output();//d2's output();
}

#include<iostream>
using namespace std;
class b
{
public:
void display()
{
cout<<"I am inside base class display function\n";
}
virtual void output()
{
cout<<"I am in side base class output function\n";
}
};
class d1 :public b
{
public:
void display()
{
cout<<"I am inside derieved d1 class display function\n";
}
void output(){
cout<<"I am in side derieved d1 class output function\n";
}
};
class d2 :public d1
{
public:
void display()
{
cout<<"I am inside derieved d2 class display function\n";
}
void output(){
cout<<"I am in side derieved d2 class output function\n";
}
};
int main()
{
b *bptr;//valid
b obj1;//invalid because we cannot create obj1 of class which has pure virtual
d1 obj2;
d2 obj3;
bptr=&obj1;
bptr->display();// base class display();
bptr->output();//base class output();
bptr=&obj2;
bptr->display();//base class display();
bptr->output(); // d1's output()
bptr=&obj3;
bptr->display();//base class display();
bptr->output();//d2's output();
}

#include<iostream>
using namespace std;
class b
{
public:
void display()
{
cout<<"I am inside base class display function\n";
}
void output(){
cout<<"I am in side base class output function\n";
}
};
class d1 :public b
{
public:
void display()
{
cout<<"I am inside derieved d1 class display function\n";
}
virtual void output(){
cout<<"I am in side derieved d1 class output function\n";
}
};
class d2 :public d1
{
public:
void display()
{
cout<<"I am inside derieved d2 class display function\n";
}
void output(){
cout<<"I am in side derieved d2 class output function\n";
}
};
int main()
{
b *bptr;
b obj1;
d1 obj2;
d2 obj3;
bptr=&obj1;
bptr->display();// base class display();
bptr->output();//base class output();
bptr=&obj2;
bptr->display();//base class display();
bptr->output(); //base class output()
bptr=&obj3;
bptr->display();//base class display();
bptr->output();//base class output();
d1 *dptr;
//dptr=&obj1;//invalid
dptr=&obj2;
dptr->display();// d1's
dptr->output(); //d1's
dptr=&obj3;
dptr->display();// d1's
dptr->output(); // d2's
}

You might also like