#include using namespace std; const double PI = 3.1416; class Box // 正方形类 { private: double side; public: Box(double s) : side(s) {} double getArea() { return side * side; } double getPerimeter() { return 4 * side; } void set(double s) { side = s; } }; class circle // 圆类 { private: double radius; public: circle(double r) : radius(r) {} double getArea() { return PI * radius * radius; } double getPerimeter() { return 2 * PI * radius; } void set(double r) { radius = r; } }; class NewStyle // 组合类 { private: circle circleObj; Box boxObj; public: NewStyle(circle c, Box b) : circleObj(c), boxObj(b) {} double S() { return circleObj.getArea() - boxObj.getArea(); } double L() { return circleObj.getPerimeter() + boxObj.getPerimeter(); } void set(circle c, Box b) { circleObj = c; boxObj = b; } }; int main() { circle A(4); // 圆的半径为4 Box B(1); // 正方形的边长为1 NewStyle C(A, B); cout << "自定义图形的面积: " << C.S() << endl; cout << "自定义图形的周长: " << C.L() << endl; A.set(6); // 圆的半径变为6 B.set(2); // 正方形的边长变为2 C.set(A, B); cout << "自定义图形的面积: " << C.S() << endl; cout << "自定义图形的周长: " << C.L() << endl; return 0; }