Cài đặt class trừu tượng Shape với virtual destructor, virtual double area() const = 0, virtual unique_ptr clone() const = 0 (prototype pattern). Cài đặt Circle(double r) và Square(double s) override cả area() và clone() (clone trả về make_unique<...>(*this)). Trong main đọc n hình ("C r" hoặc "S s"), lưu vào vector<unique_ptr> v1. Sau đó tạo vector<unique_ptr> v2 bằng cách clone từng phần tử của v1. Cuối cùng in tổng area của v2 với 3 chữ số sau dấu chấm. Dùng pi = acos(-1.0).
Dòng 1: n. N dòng tiếp theo: "C r" hoặc "S s" (số thực dương).
1 <= n <= 1000 0 < r,s <= 100
Một dòng: tổng diện tích v2 với 3 chữ số thập phân.
Ví dụ:
Đầu vào:
2
C 1
S 2
Đầu ra:
7.142
Giải thích:
Đang tải editor...