Pages

Tuesday, August 12, 2014

Virtual Function

A Virtual function is a function which is declared in base class using the keyword virtual.

Its purpose is to tell the compiler that what function we would like to call on the basis of the object of derived class.

In c++,virtual keyword is used for OVERRIDING.

NORMAL:-

1) Declare main class
    function show()
2) Define derived class(s) with functions
3) main()

3.1)Create pointer variable of base class
ie; if base class name is B.
then,
B *p;

3.2)Create object for base_class & derived classes
Base_class named B
derived_class1 named D1
derived_class2 named D2
 ie;
B base1;
D1 der1;
D2 der2;

3.3)Assign address of base_class & derived_class(s) to pointer_variable_of_Base_class
ie;
p=&base1;

call show() function
p->show();

likewise......
p=&der1;
p->show();
p=&der2;
p->show();


Without Virtual keyword: O/p will be
B
B
B
-----------------------------------------------------------------------------------------


1) Declare Base class
    function show()
ie;
class B;
{
virtual void show()
{
cout<<"B"<<"\n";
}
};

2) Define derived class(s) with functions
ie;
class D1:public B
{
void show()
{
cout<<"D1"<<"\n";
}
};

class D2:public B
{
void show()
{
cout<<"D2"<<"\n";
}
};

3) main()

3.1)Create pointer variable of base class
ie; if base class name is B.
then,
B *p;

3.2)Create object for base_class & derived classes
Base_class named B
derived_class1 named D1
derived_class2 named D2
 ie;
B base1;
D1 der1;
D2 der2;

3.3)Assign address of base_class & derived_class(s) to pointer_variable_of_Base_class
ie;
p=&base1;

call show() function
p->show();

likewise......
p=&der1;
p->show();
p=&der2;
p->show();

getch();

With Virtual keyword: O/p will be
B
D1
D2
--------------------------------------------------------------------------------------
ABOVE PROGRAM:-  /* By ARUN ANOOP M  */
--------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
virtual void show()
{
cout<<"B"<<"\n";
}
};
class D1:public B
{
void show()
{
cout<<"D1"<<"\n";
}
};

class D2:public B
{
void show()
{
cout<<"D2"<<"\n";
}
};

main()
{
B *p;
B base1;
D1 der1;
D2 der2;

p=&base1;
p->show();

p=&der1;
p->show();

p=&der2;
p->show();

getch();
}

--------------------------------------------------------------------------------------
Another PROGRAM:-  /* By ARUN ANOOP M  */
--------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
void show()
{
cout<<"Operations"<<"\n";
}
};
class D1:public B
{
void get()
{
cout<<Enter 2 nos:";
cin>>a>>b;
}

void show()
{
cout<<"Addition"<<a+b<<"\n";
}
};

class D2:public B
{

void show()
{
cout<<"Subtraction"<<a-b<<"\n";
}
};


main()
{
B *p;
B base1;
D1 der1;
D2 der2;

p=&base1;
p->show();

p=&der1;
p->get();
p->show();

p=&der2;
p->get();
p->show();

getch();
}

O/p:-
Enter 2 nos: 4 3
7
Enter 2 nos: 2 1
3
-----------------------------------------------------------------------------------------
#include<iostream.h>
class B;
{
virtual void show()
{
cout<<"Operations"<<"\n";
}
};
class D1:public B
{
void get()
{
cout<<Enter 2 nos:";
cin>>a>>b;
}

void show()
{
cout<<"Addition"<<a+b<<"\n";
}
};

class D2:public B
{

void show()
{
cout<<"Subtraction"<<a-b<<"\n";
}
};


main()
{
B *p;
B base1;
D1 der1;
D2 der2;

p=&base1;
p->show();

p=&der1;
p->get()
p->show();

p=&der2;
p->get();
p->show();

getch();
}

O/p:-
Enter 2 nos:3 4
7
Enter 2 nos:4 3
1
--------------------------------------------------------------------------------------

No comments:

Post a Comment