#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