const shape *largest(const shape *sa[], size_t n)
{
const shape *s = 0;
double m = 0;
for (size_t i = 0; i < n; ++i)
if (sa[i]->area() > m)
{
m = sa[i]->area();
s = sa[i];
}
return s;
}
int main()
{
const int N = 4;
const shape *s[N];
const shape *ls;
s[0] = new circle(shape::RED, 2);
s[1] = new rectangle(shape::BLUE, 5, 6));
s[2] = new rectangle(shape::RED, 3, 4);
s[3] = new circle(shape::GREEN, 3);
cout << "The shapes are:\n";
for (int i = 0; i < N; ++i)
cout << i << ")\t" << *s[i] << '\n';
cout << '\n';
ls: largest(s, N);
cout << "The shape with the largest area is a...\n\t";
cout << *ls << ".\n";
cout << "Its area is " << ls->area() << ".\n";
return 0;
}
// End of File