#include<iostream.h>
#include<conio.h>
class first
{
private:
int a, b;
public:
virtual void getdata(); // virtual functions
virtual void operate();
};
class second : public first
{
private:
int n, i;
long int fact;
public:
void getdata();
void operate();
};
void first :: getdata()
{
cin>>a>>b;
}
void first :: operate()
{
int c;
c = a + b;
cout<<c;
}
void second :: getdata()
{
cout<<"Enter the number whose factorial is required : ";
cin>>n;
}
void second :: operate()
{
fact = 1;
for (i=1; i<=n; i++)
fact = fact * i;
cout<<"The factorial entered number is : "<<fact;
}
int main()
{
class first *ptr;
class second obj;
ptr = &obj;
clrscr();
ptr -> getdata();
ptr -> operate();
getch();
return 0;
}