关于继承的题,如何做到题目要求?

以下为定义的图形继承体系:
class Shape{
public:
// . . .
virtual double area(){}
};
class Circle:public Shape{
public:
double area(){…}
// . . .
};
class Triangle:public Shape{
public:
double area(){…}
// . . .
};
// . . .
以下为容器类:
class Manage{
shape *a[100];
public:
// . . .
}
要求完成Manage类的拷贝构造函数,实现深度拷贝;可以改动所有的类,并给出main函数测试程序。

public:
Manage(Manage & other)
{
for (int i = 0; i < 100; i++)
a[i] = other.a[i];
}