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).
Dòng 1: q. Q dòng tiếp theo: lệnh.
1 <= q <= 1000 1 <= |s| <= 100
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:
Đang tải editor...