Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C++] Rule of 5 + polymorphism: clone qua factory

    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).

    • Định dạng đầu vào:

      Dòng 1: n. N dòng tiếp theo: "C r" hoặc "S s" (số thực dương).

    • Ràng buộc đầu vào:

      1 <= n <= 1000 0 < r,s <= 100

    • Định dạng đầu ra:

      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:

    pi + 4 ~ 7.142.

    Đang tải editor...