```
#include<iostream>
using namespace std;
class area
{
double dim1, dim2;
public:
void setarea(double d1, double d2)
{
dim1= d1;
dim2 = d2;
}
void getdim(double &d1, double &d2)
{
d1 = dim1;
d2 = dim2;
}
virtual double getarea()
{
cout<<"You must override this functionn";
return 0.0;
}
};
class rectangle : public area
{
public:
double getarea()
{
double d1, d2;
getdim(d1, d2);
return d1*d2;;
}
};
class triangle : public area
{
public:
double getarea()
{
double d1, d2;
getdim(d1, d2);
return 0.5*d1*d2;
}
};
int main()
{
area *p;
rectangle r;
triangle t;
r.setarea(3.3, 4.5);
t.setarea(4.0, 5.0);
p=&r;
cout<<"Rectangle has area: "<<p->getarea()<<'n';
p=&t;
cout<<"Triangle has area: "<<p->getarea()<<'n';
}
```

I only have problem with the `getdim()`

function within "class area". I don't understand what is the necessity of this function.

Futhermore, in the derived class when the virtual function overridden, `getdim`

function is used outside the "class area". But the `getdim`

function is not identified in the derived class.

Is it always possible to use a function to another class where the function is not identified??

Thanks in advance