同じクラスのオブジェクトへのポインターを取るクラスコンストラクターを持つことは理にかなっていますか? アイデアは、古いオブジェクトから新しいオブジェクトにすべてのデータをコピーすることです。
class Shape {
...
public:
Shape(string,string,...)
Shape(Shape*)
}
Shape::Shape(Shape* ref) {
layer = ref->layer;
purpose = ref->purpose;
...
}