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

    solution

    Đề bài: [C++] Rule of 5 + multiple inheritance: Document

    Cài đặt: interface Readable có virtual string read() = 0 và virtual destructor. Interface Writable có virtual void write(const string&) = 0 và virtual destructor. Class Document kế thừa cả hai, quản lý con trỏ char* buf (cấp phát động). Cài đặt đầy đủ rule of 5 (constructor, dtor, copy ctor, copy assign, move ctor noexcept, move assign noexcept), trong đó copy là deep copy. read() trả về buf dưới dạng string; write(s) cấp phát lại buf cho khớp s. Đọc q lệnh: "W s" gọi write(s) lên doc; "R" in read(); "K" copy auto doc2 = doc; write("x") lên doc2; in read() của doc (phải không đổi).

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

      Dòng 1: q. Q dòng tiếp theo: lệnh.

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

      1 <= q <= 1000 1 <= |s| <= 100

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

      Theo từng lệnh R/K.

    Ví dụ:

    Đầu vào:

    4
    W hello
    R
    K
    R
    

    Đầu ra:

    hello
    hello
    hello

    Giải thích:

    hello / hello (vì K copy ra doc2 và đổi doc2) / hello.

    Đang tải editor...